私の接続がしばらくアイドル状態の場合、リモートホストは接続を閉じます。新しいコマンドを入力しようとすると、ハングしてから接続が閉じます。 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が占めるリソースが回収されます。
したがって、あなたが望むのは時々トラフィックを送信することです。openssh
Cygwinシステムでこの実装を使用すると仮定すると、最も簡単な方法は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