AWS EC2 インスタンスへの ssh 接続でタイムアウトしないようにする
調べるとセキュリティグループだのなんだのと AWS 系の設定ネタがヒットするが、違った。結論を言うと、AWS は無関係で、単に ssh 接続一般論の話だった。 KeepAlive パケットを送るようにすれば良い。
- もう少し詳しく
- ケース1: RLogin で AWS EC2 の Linux に SSH 接続している場合
- ケース2: ケース1で SSH 接続した Linux から、さらに ssh コマンドで接続している場合
もう少し詳しく
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回連続でパケットが届かなかったら(サーバーが死んでると思うので)諦めます」という意味。