さくらの VPS の Ubuntu 24.04 に SSH ログインしていたら勝手に切れることに気がついた

前書き

以下の記事で書きましたが、今年 2024 年 6 月に さくらの VPS (Ubuntu 24.04) を追加契約しました。

さくらの VPS を買い増しして Ubuntu 24.04 をセットアップしてみた話

それ以来、気になっていたこととして、なぜかこの Ubuntu に SSH でログインしているとき、数分経過すると勝手に SSH セッションが切れてしまうということがありました。

これは、さくらの VPS が悪いということではなくて、なんでセッションが切られてしまうのか?面倒くさいなあと思っていたという話です。

が、しかし、いよいよ面倒くさくなったので対策をすることにしました。

対策はクライアント側で行うことにした

なぜ SSH セッションが切れてしまうのか?この原因については軽く調べてみたんですがわからなかったです。

原因追求することに強いこだわりはなかったので、対処策を見つけてその対処を行うことにしました。

原因はわからなかったんですが、なにかの設定によりタイムアウトが発生して SSH セッションが切られているようでした。そこで SSH の config ファイルに さくらの VPS に接続するための定義があるんですが、以下を追記しました。

 ServerAliveInterval 60
 ServerAliveCountMax 3

これの意味は以下です。

ServerAliveInterval 60 では、SSH クライアントが SSH サーバーに「生存確認」メッセージを送信する間隔 (単位:秒) を指定しています。この例では 60 秒ごとにサーバーに信号を送信して、接続がまだ生きていることを伝え、接続がアイドル状態にならないようにしています。この結果として、ネットワークのタイムアウトやアイドル接続の切断を防ぐことを意図しています。

ServerAliveCountMax 3 は、SSH クライアントが連続して SSH サーバーからの応答がない場合に、何回の「生存確認」メッセージを送信するかを指定しています。この例では、クライアントが 3 回連続で応答を受け取れなかった場合に接続を切ります。SSH サーバーが応答しなくなった場合に、クライアントが無限に接続を保とうとするのを防ぐためのものです。

config ファイルの全体は以下のような感じ。

$ pwd
/home/hoge/.ssh
$ ls config
config
$ cat config
Host home1
  HostName 172.17.10.24
  User hoge
  IdentityFile ~/.ssh/home1

Host interfacepoint
  HostName 10.123.0.15
  User hoge
  IdentityFile ~/.ssh/interfacepoint

Host sakuravpsubuntu
  HostName ik3-284-56135.vs.sakura.ne.jp
  User hoge
  IdentityFile ~/.ssh/sakuravpsubuntu
  ServerAliveInterval 60
  ServerAliveCountMax 3
$

青文字の箇所が さくらの VPS に接続するための SSH 設定で、ここに定義を追加したわけです。

以下のようにログインします。

$ ssh sakuravpsubuntu
hoge@ik3-284-56135.vs.sakura.ne.jp's password: 
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-35-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro

System information as of 2024年 8月 12日 月曜日 13:32:26 JST

System load: 0.55
Usage of /: 8.1% of 196.77GB
Memory usage: 50%
Swap usage: 49%
Processes: 139
Users logged in: 1
IPv4 address for ens3: 13x.24x.18x.63x
IPv6 address for ens3: 2401:2500:102:1b02:13x:24x:18x:63x

Expanded Security Maintenance for Applications is not enabled.

108のアップデートはすぐに適用されます。
これらの追加アップデートを確認するには次を実行してください: apt list --upgradable

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status

*** System restart required ***
Pending kernel upgrade!
Running kernel version:
6.8.0-35-generic
Diagnostics:
The currently running kernel version is not the expected kernel version 6.8.0-41-generic.

SAKURA internet [Virtual Private Server SERVICE]

Last login: Sat Sep 7 11:33:40 2024 from 13x.6x.4x.6x
$

効果

ServerAliveInterval の設定を入れることでタイムアウトによる (と思われる) SSH セッションの切断がなくなったことを確認できた。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください