SSH:一定期間活動がない場合、接続はリセットされます。

SSH:一定期間活動がない場合、接続はリセットされます。

私の接続がしばらくアイドル状態の場合、リモートホストは接続を閉じます。新しいコマンドを入力しようとすると、ハングしてから接続が閉じます。 SSH接続をより長くアクティブに保つにはどうすればよいですか?

$ ssh [email protected]
Last login: Tue Jan  3 03:09:39 2017 from c-99-99-99-99.hsd1.xx.comcast.net
[root@ip-172-99-99-99 ~]# groups
root bin daemon sys adm disk wheel
[root@ip-172-99-99-99 ~]# users
root root
[root@ip-172-99-99-99 ~]# less /etc/passwd
[root@ip-172-99-99-99 ~]# Connection reset by 52.99.99.99 port 22

リモートはAmazon(AWS)のCentOS、ローカルはCygwinです。

答え1

home最後のログインはcomcast.netで行われたため、NATを実行しているルーターの背後にあるシステムから接続しているようです。 NAT を実行するシステムの 1 つの問題は、接続が不要になった時期を知ることです。接続が完全に切断されても問題はありませんが、両方のコンピュータが再起動されている場合、NATボックスはこれらのことが発生したことを知らせません。したがって、通常のNATボックスには、「1時間のトラフィックがなければ、明らかに両方のエンドポイントはもはや何も送信しません」というタイマーがあるため、NATが占めるリソースが回収されます。

したがって、あなたが望むのは時々トラフィックを送信することです。opensshCygwinシステムでこの実装を使用すると仮定すると、最も簡単な方法はTCPKeepAliveを有効にすることです。変える

ssh [email protected]

そして

ssh -o TCPKeepAlive=true [email protected]

長期間使用するには、~/.ssh/configファイルを作成することをお勧めします。

 host fred
     hostname host.com
     user root
     TCPKeepAlive=true

ssh fred次に、必要なオプションを使用してマシンに接続するだけです。

答え2

最後に保存されたセッションSSHキーを使用しています。

これを削除し、sshアクセスしたいIPアドレスの新しいキーを追加する必要があります。

ssh-keygen -f "/home/asagarwal-dev/.ssh/known_hosts" -R 10.0.0.6

上記のコマンドは私の問題を解決しました(ホストから取得し10.0.0.6たいIPアドレスはどこにありますか?)。ssh

答え3

SSH クライアントとして、以下を構成します。

Host *
ServerAliveInterval 60

sudo source ~/.ssh/config

すべてのリモートホストはここで設定されます。

/etc/ssh/ssh_config

ServerAliveInterval 60

関連情報