多くの場合、応答しなくなったSSHセッションがあります(たとえば、インターネット接続を失ってから再接続した場合)。 Ctrl+C、 Ctrl+D、 Ctrl+Z そして、何十億ものキーを押しても何の効果もありません。
ほとんどの場合、すでにtmux
またはbyobu
をすでに実行しているため、別の端末を起動して再接続するだけです。しかし、それは面倒に感じます。現在の端末からSSHを切断するにはどうすればよいですか?
「エスケープ文字」(通常はチルド~
)を使用して、SSHセッションを制御します。
~
の後に.
を続けると、SSH接続が閉じます。~
の後に Ctrl+Z SSHプロセスを一時停止します。~
の後に別の~
が続くと、リテラル~
が送信されます。-e
オプションを使用してエスケープ文字を ssh に設定できます。
さらに、
また、押すことを忘れないでください Enter 前 ~。エスケープ文字は、行の最初の文字であるときに機能します。そしてまたあなたは使うことができます ~ 以降 ? sshクライアントからヘルプを取得します。 ( Lukasz Stelmach によるコメントに感謝します。)
Opensshは、クライアントまたはサーバーの生存メッセージを反対側に送信するように構成できます。応答がない場合、接続は終了します。サーバー側から、ClientAliveInterval
およびClientAliveCountMax
構成オプションを参照してください。クライアント側から、ServerAliveInterval
およびServerAliveCountMax
オプションを参照してください。 TCPKeepAlive
もオプションですが、以前のオプションはそうではありませんが、なりすまし可能であるため、おそらくより優れています。
これらを適切な値に設定すると、おそらく接続が再びハングすることはありません。唯一の欠点は、セキュリティ上の理由から、ssh接続を終了したい場合でも、接続が開いたままになる可能性があることです。
詳細については、 OpenSSH sshd config man page および OpenSSH ssh config man page を参照してください。