更新履歴
- TeraTermのセッションが勝手に切れる原因と対策|タイムアウトを防ぐ設定ガイド
- WinMergeをインストール不要で使う!ポータブル版の導入手順とメリットを解説
- 【完全ガイド】WinMergeでバイナリ比較をする方法
- SwaggerとOpenAPIの違いを徹底解説!仕様とツールの関係性を理解する
- 【Python】ファイル存在チェックの実装方法(pathlib、os.path)
- Pythonで文字列を除去する方法を完全解説!strip・replace・正規表現
- スタック領域とヒープ領域の違いとは?メモリ管理から使い分けまで徹底解説
- Python Docstringの書き方完全ガイド|主要スタイルの比較と保守性を高める記述
- シングルトン(Singleton)デザインパターンを徹底解説!Java実装例・メリット・デメリット
- サインインとログインの違いとは?意味・使い分けをわかりやすく解説
- 静的サイトと動的サイトの違いを徹底比較!メリット・デメリットと選び方を解説
- モノリスとマイクロサービスの違いを徹底比較|メリット・デメリットと失敗しない選定基準
- RESTとSOAPの違いを徹底比較!特徴・メリット・使い分けを解説
- 同期・非同期とブロッキング・ノンブロッキングの違い|概念と使い分けを徹底比較
- マルチプロセスとマルチスレッドの違いを解説!メリット・デメリット・使い分け
- hostsファイルとDNSの違いとは?優先順位・仕組み・使い分けを解説
- Excelで複数行を1行にまとめる方法まとめ【関数・PQ対応】
- レスポンスタイムとターンアラウンドタイムの違い【基本情報対策】
- ステートレスとステートフルの違いを徹底解説!エンジニアが知るべき仕組みと具体例
- shとbashの違いを徹底解説!シェルスクリプトの使い分け
お役立ちツール
この記事は役に立ちましたか?
ITエンジニアにお勧めの本
TeraTermで作業中、急にセッションが切れて困った経験はありませんか?「TeraTerm セッション 切れる」原因の多くは、アプリやサーバー側のタイムアウト設定にあります。本記事では、接続を維持するためのキープアライブ設定やサーバー側の調整方法を初心者にも分かりやすく解説します。この記事を読めば、不意の切断に悩まされることなく、ストレスのない安定したリモート操作環境を構築できます。
記事のポイント
- TeraTermの「ハートビート(keep-alive)」機能を有効に設定するだけで、放置によるセッション切れを多くの場合で解消できます(SSH接続の場合は[設定]>[SSH]メニューから設定)。
- クライアント側だけでなくサーバー側のSSH設定(sshd_config)を調整することで、接続の安定性が格段に向上します。
- PCの省電力モードやファイアウォールの遮断といった、ネットワーク経路上の盲点となる原因と対策がわかります。
- 記事内のチェックリストを活用すれば、環境によってはセッション切断の頻度を大きく減らし、より安定したリモート作業環境を整えやすくなります。
TeraTermのセッションが頻繁に切れる原因と具体的な解決策
TeraTermを利用してリモートサーバーに接続している際、しばらく操作をしないだけで接続が切断されてしまうことがあります。これは主に、通信がない状態が続くことでタイムアウトと判断され、クライアント、サーバー、あるいは通信経路上のネットワーク機器によってセッションが破棄されることが原因と考えられます。
以下に、接続を維持するための具体的な解決策を解説します。
TeraTermの「設定」からキープアライブ(生存確認)を有効にする
TeraTerm側で最も手軽にできる対策がキープアライブ(Keep-alive) 機能の活用です。これは、一定時間ごとに「まだ接続中である」ことを確認する SSHレベルの生存確認メッセージ(keep-aliveメッセージ) を送信することで、セッションがアイドル状態と判定されるのを防ぐ仕組みです。
送信間隔(秒)の適切な設定値と手順
キープアライブの設定は、接続プロトコルによって設定場所が異なります。
SSH接続の場合(推奨):
- TeraTermのメニューから [設定] > [SSH] を選択します。

- [ハートビート(keep-alive)] の項目に数値を入力します。

Telnet接続の場合:
- TeraTermのメニューから [設定] > [TCP/IP] を選択します。

- [Keep alive on Telnet] の項目に数値を入力します。

| 設定項目 | 推奨値 | 概要 |
|---|---|---|
| 送信間隔(秒) | 30 ~ 60 | 無通信状態がこの時間を超えると信号を送信します。 SSH のハートビートは 60 秒程度がデフォルトになっているバージョンが多く、 環境に応じて 30~60 秒に調整するのが無難です。 Telnet の Keep alive(TCP/IP メニュー)は別途 300 秒が初期値になっている場合があります。 |
注意: ほとんどの場合、SSH接続を使用しているため、[設定] > [SSH] から設定してください。TCP/IPメニューのKeep aliveはTelnet専用です。
設定後は、 [設定] > [設定の保存] をクリックします。通常は保存時のファイル名を 「TERATERM.INI」 としておくのが安全です。TeraTermは起動時にこのファイルを標準の設定ファイルとして読み込むため、多くの環境では TERATERM.INI に保存しておくことで、次回起動時にも設定が反映されます。別名で保存する場合は、起動オプションや設定フォルダの変更など、明示的にそのINIを使う設定が必要になることがあります。
保存場所としては、次のような運用が一般的です。
- ユーザーのドキュメントフォルダ(例:C:\Users\ユーザー名\Documents など)に TERATERM.INI を保存すると、そのユーザーのデフォルト設定として読み込まれる環境が多いです。
- TeraTerm のインストールフォルダに TERATERM.INI を置いておく方法もありますが、管理者権限が必要な場合があります。 どこに置くかは運用ポリシー次第ですが、「どのサーバー/どのユーザー用の設定か」が分かるように整理しておくと管理しやすくなります。
サーバー側のSSH設定(sshd_config)によるタイムアウトを調整する
TeraTerm側の設定で改善しない場合、接続先のLinuxサーバー側の設定(SSHデーモン)が影響している可能性があります。
ClientAliveInterval、ClientAliveCountMax、TCPKeepAliveの役割
サーバー側の /etc/ssh/sshd_config ファイルにある以下のパラメータを調整することで、サーバーからクライアントへの生存確認を制御できます。
- ClientAliveInterval:生存確認を送る間隔(秒)。0を指定すると機能が無効になります。
- ClientAliveCountMax:応答がない場合に切断するまでの試行回数。
- TCPKeepAlive:TCP層のSO_KEEPALIVE機能を使用するかどうか(yes/no)。
推奨設定例:
# SSH層でのキープアライブ設定ClientAliveInterval 60ClientAliveCountMax 3
# TCP層でのキープアライブ設定TCPKeepAlive yesタイムアウト計算: 実際にセッションが切断されるまでの時間は、以下の計算式で求められます。
タイムアウト時間 = ClientAliveInterval × ClientAliveCountMax例: 60秒 × 3回 = 180秒(3分)この設定では、60秒ごとに生存確認を送信し、3回連続で応答がない場合(合計180秒後)に接続が切断されます。
設定変更後は、SSHデーモンを再起動して設定を反映させる必要があります。
再起動コマンド(Linuxディストリビューションによって異なります):
# RHEL系(CentOS / Rocky / AlmaLinux など)sudo systemctl restart sshd
# Debian / Ubuntu 系sudo systemctl restart ssh
# 古いシステム(SysVinit使用)sudo service sshd restartWindows OSやネットワーク機器の省電力・タイムアウト設定を確認する
PC自体のネットワークアダプターの省電力設定が原因で、通信が途切れるケースも散見されます。デバイスマネージャーからネットワークカードのプロパティを開き、「電力の管理」タブで「電力の節約のために、コンピューターでこのデバイスの電源をオフにできるようにする」のチェックを外すことで改善する場合があります。
また、社内LANやVPNを利用している場合、ルーターやファイアウォールに設定されたアイドルタイムアウト時間が短い可能性も考慮すべきでしょう。
ネットワーク経路上のファイアウォールによるセッション遮断を防ぐ
ネットワーク経路上にあるファイアウォールやロードバランサーは、メモリリソースを節約するために、一定時間通信がないTCPセッションを強制的に破棄することがあります。これを防ぐには、前述したキープアライブを短めの間隔(例えば30秒など)に設定し、常に微弱な通信が発生している状態を維持することが有効な対策となります。
\ITエンジニアにお勧めの一冊/
よくある設定ミスと対処法
TeraTermのキープアライブ設定でよくある間違いをまとめました。
| ミスの内容 | 問題 | 正しい対処法 |
|---|---|---|
| TCP/IPメニューで設定してしまう | SSH接続なのにTelnet用の設定をしているため効果がない | SSH接続の場合は[設定]>[SSH]から設定する |
| 設定保存をしていない | 設定が一時的で、再起動すると元に戻る | [設定]>[設定の保存]で必ずTERATERM.INIに保存 |
| 別のファイル名で保存 | 次回起動時に設定が読み込まれない | 通常は「TERATERM.INI」で保存するのが確実。 別名で使いたい場合は、起動オプションや設定フォルダの変更などで、 そのINIを明示的に指定する必要がある。 |
| サーバー側を設定していない | クライアント側だけでは片側通行で効果が限定的 | sshd_configも合わせて調整する |
| sshdを再起動していない | サーバー側の設定変更が反映されていない | systemctl restart sshd(または ssh)を実行 |
TeraTermのセッション切断に関するよくある質問(FAQ)
TeraTermを利用している中で、設定を見直してもセッションが切れてしまう、あるいは特定の条件下で通信が不安定になるといった疑問を持つ方は少なくありません。ここでは、エンジニアの現場でよく遭遇するトラブルとその解決のヒントをFAQ形式でまとめました。
Q. 何も操作せず放置しているとすぐに切れるのはなぜですか?
A. 主な原因は、通信経路上の機器やサーバーによる「アイドルタイムアウト」です。
SSH接続において、一定時間データのやり取りがない状態を「アイドル状態」と呼びます。この状態が続くと、リソースを確保するために以下のいずれかがセッションを強制終了させることがあります。
- ファイアウォールやルーター: 通信がないコネクションを「不要なもの」と判断して破棄します。
- SSHサーバー(sshd): 設定ファイル(sshd_config)で定義された時間を経過すると接続を閉じます。
これを防ぐには、前述のキープアライブ(生存確認) 設定が最も効果的です。数分おきに SSHの生存確認メッセージ(keep-alive) を送信することで、ネットワーク機器に「この通信はまだ継続中である」と認識させることが可能になります。
Q. 接続が切れた後に自動で再接続(リストア)する方法はありますか?
A. TeraTerm標準機能では「自動再接続」は限定的ですが、マクロやサーバー側のツールで補完できます。
TeraTerm自体には、切断を検知して即座に元の画面を復元する強力な自動再接続機能は備わっていません。しかし、以下の方法で作業効率を下げずに対応できる可能性があります。
- TeraTermマクロ(.ttl)の活用: ログイン処理を自動化するマクロを作成しておけば、切断後もアイコンをダブルクリックするだけで即座に再ログインが完了します。
- サーバー側で「tmux」や「screen」を使用する: これらは仮想端末を管理するツールです。万が一TeraTermのセッションが切れても、サーバー側でプロセスは維持されるため、再ログイン後に
tmux attachなどのコマンドを打つだけで作業途中の状態から再開できます。 - Duplicate Session(セッションの複製): 既存の接続が生きているうちに、別のウィンドウを立ち上げておくことで、リスクを分散させる運用も一般的です。
Q. キープアライブを設定してもセッションが切れる場合の対処法は?
A. ネットワークの物理的な不安定さや、OSの省電力機能が影響している可能性があります。
設定に不備がないのに切れる場合は、以下のチェックリストを確認してみてください。
| 確認項目 | 対策案 |
|---|---|
| Wi-Fiの瞬断 | 有線LANへの切り替え、または電波強度の確認。 |
| VPNの仕様 | VPNクライアント自体に設定されたタイムアウト時間の確認。 |
| PCのスリープ設定 | Windowsがスリープに入るとネットワークも切断されるため、設定を変更。 |
| サーバーのTCPKeepAlive | サーバー側の /etc/ssh/sshd_config にある TCPKeepAlive を yes に設定。 |
特に、ノートPCをドッキングステーション経由で接続している場合、ネットワークアダプターの省電力設定が悪影響を及ぼすケースが多いため、デバイスマネージャーの設定を見直すことが推奨されます。
まとめ:TeraTermのセッション維持を確実にするためのポイント
今回のまとめ:振り返りチェックリスト
- TeraTermの「ハートビート(keep-alive)」を有効化する: 無操作状態でもSSHの生存確認メッセージを定期送信することで、ネットワーク経路上のタイムアウトを防ぐのが第一歩です。
- サーバー側の「sshd_config」を見直す: クライアント側の設定だけで解決しない場合は、サーバー側の生存確認設定(ClientAliveInterval等)を適切に調整しましょう。
- アプリ外の要因(OS・ネットワーク)も疑う: Windowsの省電力設定やファイアウォールのセッション維持制限など、環境全体を俯瞰して原因を切り分けることが大切です。
- アドバイス: まずはTeraTermの設定から「[設定] > [SSH] > ハートビート(keep-alive)」を開き、「送信間隔を60秒」に設定してください。その後、必ず「[設定] > [設定の保存]」で TERATERM.INI という名前で保存しましょう。ファイル名が異なると設定が反映されないので注意が必要です。まずはこの設定を行うだけでも、環境によっては日々のセッション切断が大きく減り、作業ストレスがかなり軽くなることが期待できます。
TeraTerm(テラターム)を利用中に、作業の手を止めた隙に接続が切れてしまう現象は、エンジニアにとって大きなストレスとなります。本記事で解説してきた通り、セッションが切断される原因はクライアント(TeraTerm)、サーバー(SSH設定)、ネットワーク経路(ファイアウォールやVPN、ルーターなど) のいずれか、あるいはその組み合わせであることが多いです。
セッション切断を防ぐための最終チェックリスト
これまでの対策を振り返り、設定漏れがないか確認してみてください。
| カテゴリ | 対策内容 | 期待できる効果 |
|---|---|---|
| TeraTerm設定(SSH) | 「設定」→「SSH」→「ハートビート(keep-alive)」を30~60秒程度に設定し、「設定の保存」でTERATERM.INIに保存。 | クライアントから定期的にSSHの生存確認メッセージを送信し、アイドル状態を防ぐ。 |
| TeraTerm設定(Telnet) | 「設定」→「TCP/IP」→「Keep alive on Telnet」を設定(Telnet接続の場合のみ)。 | Telnet接続時のタイムアウトを防止。 |
| サーバー設定 | sshd_config の ClientAliveInterval などを調整。 | サーバー側からのタイムアウト判定を緩和する。 |
| OS・省電力 | Windowsのネットワークアダプターの電源管理を見直す。 | PCがアイドル状態になっても通信を維持しやすくする。 |
| ネットワーク | ファイアウォールやVPNのタイムアウト値を確認。 | 経路上の機器による強制切断を回避する。 |
特に、TeraTermの設定を変更した後は、必ず「設定の保存」(設定メニュー > 設定の保存)を実行してください。これを忘れると、次回起動時に元の設定に戻ってしまい、再びセッションが切れる原因となり得ます。
快適なリモート作業環境を構築するための一助となれば幸いです。
ITエンジニアにお勧めの本
以上で本記事の解説を終わります。
よいITライフを!