ssh接続をクライアント側から強制切断

Goro Yanagi
VELTRA Engineering
Published in
2 min readAug 7, 2017

サーバーにsshしたまま、ちょっと席を外して戻ってきたら、ターミナルが固まっていてどうにもならず、ターミナルごと落としてsshのやり直し、みたいなことありませんか?

そのようなときは固まってしまったターミナルにフォーカスを合わせて、

~. 

と打ってみてください。

sshが終了し、手元の環境のshellが現れます。

何をしているのか?

sshのmanを見ると、後半にESCAPE CHARACTERSというセクションがあります。

$ man ssh
(中略)
ESCAPE CHARACTERS
When a pseudo-terminal has been requested, ssh supports a number of functions through the use of an escape character.
A single tilde character can be sent as ~~ or by following the tilde by a character other than those described below. The escape character must always follow a newline to be
interpreted as special. The escape character can be changed in configuration files using the EscapeChar configuration directive or on the command line by the -e option.
The supported escapes (assuming the default `~') are:~. Disconnect.
(後略)

新しい行でエスケープ文字(~)を打つと、実行中のsshに対して、いくつかの操作を行えるモードになります。port forwardingに使っている場合は、接続設定を動的に変更できます。

今回紹介した強制切断方法もこのモードの機能です。

これでベストな位置に配置したターミナルを無駄にしないですみますね!

それでは、皆さん良いCLIライフを!

--

--