linux – SSH接続を終了するには?

linux ssh virtualbox

のようなコマンドを使ってソケットサーバにメッセージを送信するためにSSHでサーバに接続しています

ssh 181.169.1.2 -p 5566

接続が確立してメッセージを書いて送信した後、テキストモードを終了することができません。テキストをさらに入力するだけで終了してしまいました

コマンドモードに戻れるコマンドやキーの組み合わせはありますか?

  306  Andreea  2012-08-28


ベストアンサー

SSH接続を終了するには?

Two ways:

  • シェルセッションを閉じると、通常は次のように終了します
    • シェルの組み込みコマンド exit の後に Enter を続けるか、または
    • Ctrld, (end-of-file)
  • 接続が悪くてシェルが応答しない場合は、Enter キーを押してから ~. と入力すると、ssh はすぐに閉じてコマンドプロンプトに戻ります

前者の選択肢は直感的にわかるはずですが、後者の選択肢はどうやってわかるのでしょうか?

男のページを丁寧に読むことで、この情報を知ることができました

$ man ssh

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.

~^Z     Background ssh.

~#      List forwarded connections.

~&      Background ssh at logout when waiting for forwarded connection
/ X11 sessions to terminate.

~?      Display a list of escape characters.

~B      Send a BREAK to the remote system (only useful if the peer sup‐
ports it).

~C      Open command line.  Currently this allows the addition of port
forwardings using the -L, -R and -D options (see above).  It
also allows the cancellation of existing port-forwardings with
-KL[bind_address:]port for local, -KR[bind_address:]port for
remote and -KD[bind_address:]port for dynamic port-forwardings.
!command allows the user to execute a local command if the
PermitLocalCommand option is enabled in ssh_config(5).  Basic
help is available, using the -h option.

~R      Request rekeying of the connection (only useful if the peer
supports it).

~V      Decrease the verbosity (LogLevel) when errors are being written
to stderr.

~v      Increase the verbosity (LogLevel) when errors are being written
to stderr.

exit to ssh には何も特別なことはなく、シェルを終了するための方法であり、結果として ssh セッションを閉じることになります

$ type exit
exit is a shell builtin
$ help exit
exit: exit [n]
Exit the shell.

Exits the shell with a status of N.  If N is omitted, the exit status
is that of the last command executed.

参照元を引用したり引用したりすることは、そうでなければ、おそらく実証可能な事実の主張になるであろうことに、さらなる証拠を提供したり、より関連性の高い情報が保存されているかもしれない場所をユーザーに知らせたりすることです

意味的に正しいことをしていることを知りたいだけでなく、それが機能していることを知りたいのです

バグとして文書化され、後に “修正 “されたものを機能として呼び出すことを学びたくはないでしょう。意味的に正しいことをすることはサポートされ続けるでしょう

252  Aaron Hall  2017-09-16


簡潔に答えます。exitを入力します

しかし、それがうまくいかない場合は

SSHエスケープ文字とディスコネクトシーケンス

ほとんどの SSH の実装では、 telnet の Ctrl-] の組み合わせに似た、対話型セッション用のエスケープ文字が実装されています。デフォルトの SSH のエスケープ文字は ~ で、行頭に入力されます

リモート側のシェルに exitCtrlD を入力しても抜けない対話型 OpenSSH セッションを終了させたい場合は、 ~ の後にドット . を入力します。入力行の先頭にエスケープ文字を確実に入力するためには、最初にEnterを押す必要があります。そのため、以下のシーケンスでほとんどの場合、SSHセッションを終了させることができます

Enter~.

他の脱出シークエンス

たとえば OpenSSH は ~. の他にもエスケープシーケンスを提供しています。セッション中に ~? と入力すると、リストが表示されるはずです。いくつかの例があります

  • ~に続いてCtrl-Zがセッションを中断します
  • ~&は直接背景に入れます
  • ~#は、このセッションで転送された接続のリストを与えます
  • 単純に行頭にチルダを入力したい場合は二重にする必要があります。~~

エスケープ文字はコマンドラインオプション -e で変更できます。特別な値 -e none を設定すると、エスケープは無効になり、セッションは完全に透過的になります

OpenBSD の ssh の man ページ (www.openssh.org から参照されています) -e コマンドラインオプションも参照してください

303  Dubu  2013-07-17


SSHシェルを終了しますか?

exitと打ってEnterを打つか、Ctrl+Dを使ってください

32  Jeroen Vermeulen – MageHost  2012-08-28


exitlogoutと入力するだけで(もちろんEnterキーを押してから)どちらでも動作します

11  octa  2014-04-14


これらはサポートされている文字で、ssh で遊ぶための様々なオプションを提供しています

エスケープシーケンスをサポートしています

 ~.  - terminate session

~B  - send a BREAK to the remote system

~R  - Request rekey (SSH protocol 2 only)

~#  - list forwarded connections

~?  - this message

~~  - send the escape character by typing it twice

(エスケープは改行直後にのみ認識されることに注意してください。) Enterを押すことでエスケープシーケンスのリストを閉じることができます

8  0_o  2016-06-14


コンソール行にlogoutと書けばいい(もちろんEnterも打つ)

4  Etienne  2013-07-17


MacOS: ssh がハングアップする場合は、以下のシーケンスを使用してください

ENTER
SHIFT+`
.

ここで: shift+` は ~ (チルダ文字) を生成します

4  Kamil Kiełczewski  2018-03-29


タイトルとURLをコピーしました