AWS EC2 インスタンスへの ssh 接続でタイムアウトしないようにする

調べるとセキュリティグループだのなんだのと AWS 系の設定ネタがヒットするが、違った。結論を言うと、AWS は無関係で、単に ssh 接続一般論の話だった。 KeepAlive パケットを送るようにすれば良い

もう少し詳しく

ssh 接続元の ssh クライアントにて、KeepAlive パケットを送る設定を行う。

ケース1: RLogin で AWS EC2 の Linux に SSH 接続している場合

RLogin のサーバー設定 > サーバー > プロトコル > SSH > KeepAliveパケットの送信間隔

ここにチェックを入れ、送信間隔を適当にする。60秒など。

ケース2: ケース1で SSH 接続した Linux から、さらに ssh コマンドで接続している場合

ケース1 で SSH 接続した Linux 上で、ssh_config をいじる

$ vi ~/.ssh/config

追加するのは以下二つ。

ServerAliveInterval 60
ServerAliveCountMax 3

これは「60秒毎にKeepAliveパケットを送ります」「でも3回連続でパケットが届かなかったら(サーバーが死んでると思うので)諦めます」という意味。

参考: sshセッションのタイムアウトを防止する - コードの波にゆーらゆら