クラッシュしたSSHセッションから離脱するにはどうすればよいですか?


62

多くの場合、もう応答しないSSHセッションがあります(たとえば、インターネット接続を失ってから再接続した場合)。Ctrl+ CCtrl+ DCtrl+ Zおよび無数のキーを押しても効果はありません。

ほとんどの場合、すでに持っているtmuxbyobu既に実行されているので、別の端末を起動して再接続するだけです。しかし、それは面倒です。現在の端末からSSHを切断するにはどうすればよいですか?

回答:


87

「エスケープ文字」(通常はチルダ~)を使用して、SSHセッションを制御します。

  • ~その後.、SSH接続を閉じます。
  • ~Ctrl+をZ押すと、SSHプロセスが中断されます。
  • ~次に~、リテラルが送信されます~

ssh-eオプションを 使用して、エスケープ文字を設定できます

さらに、覚えておいてください

また、Enter前に押すことを忘れないでください~。エスケープ文字は、行の最初の文字である場合に機能します。また~、後で使用?してsshクライアントからヘルプを取得することもできます。(Lukasz Stelmachのコメントに感謝します。)


11
また、Enter前に押すことを忘れないでください~。エスケープ文字は、行の最初の文字のときに機能します。また~、後で使用?してsshクライアントからヘルプを取得することもできます。
ルカシュステルマハ

7
~続いて?、サポートされているエスケープシーケンスの完全なリストが表示されます
-Matijs

1

opensshは、クライアントまたはサーバーのアライブメッセージを反対側に送信するように構成できます。応答が得られない場合、接続は終了します。サーバー側から、ClientAliveIntervalおよびClientAliveCountMaxconfigオプションを参照してください。クライアント側から、ServerAliveIntervalおよびServerAliveCountMaxオプションを参照してください。TCPKeepAliveはオプションでもありますが、前者のオプションはそうではないのになりすましやすいので、おそらくより良いでしょう。

これらを適切な値に設定すると、おそらく接続が再びハングすることはありません。唯一の欠点は、セキュリティ上の理由から、ssh接続を終了したい場合、ssh接続が開いたままになる可能性があることです。

詳細な情報については、OpenSSH sshd構成のmanページOpenSSH ssh構成のmanページ参照してください


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.