web-dev-qa-db-ja.com

SSH接続を終了する方法

私はSSH経由でサーバーに接続して、次のようなコマンドを使用してソケットサーバーにメッセージを送信します。

ssh 181.169.1.2 -p 5566

接続が確立され、メッセージを書いて送信した後は、テキストモードを終了できません。それ以上のテキストを入力することしかできません。

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

230
Andreea

SSH接続を終了する方法

二通り:

  • シェルセッションを閉じます。 exitに続けて Enterまたは Ctrl - d 通常はsshセッションを普通に終了させます。
  • 接続に問題がありシェルが応答しない場合は、次のように入力してください。 Enter キーを押してから~.と入力すると、sshはすぐに閉じてコマンドプロンプトに戻ります。

最初の選択肢は直感的にわかるはずですが、後者の選択肢はどのようにしてわかりますか。

この情報はmanページを注意深く読むことで学ぶことができました。

$ 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.
131
Aaron Hall

短い答え:exitと入力してください

それでもうまくいかない場合は、.

SSHエスケープ文字と切断シーケンス

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

対話的なOpenSSHセッションを終了したい場合は、立ち往生していてexitを入力しても終了できない場合 CtrlD リモート側のシェルに入力すると、~に続けてドット.を入力できます。入力行の先頭に必ずエスケープ文字を入力するには、最初にEnterキーを押す必要があります。したがって、次のシーケンスはほとんどの場合SSHセッションを終了します。

Enter~.

その他のエスケープシーケンス

たとえば、OpenSSHは~.以外の他のエスケープシーケンスを提供します。セッション中に~?を入力すると一覧が表示されます。いくつかの例:

  • ~の後に続くCtrl-Zはセッションを中断します、
  • ~&はそれを直接バックグラウンドにします、
  • ~#は、このセッションで転送された接続のリストを示します。
  • 単純に行頭にチルダを入力したい場合は、それを2倍にする必要があります:~~

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

-eコマンドラインオプションの下の sshのOpenBSDのマニュアルページwww.openssh.org から参照される)も参照してください。

271
Dubu

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

exitと入力してヒットすることができます Enterまたは使用 Ctrl+D

exitまたはlogoutと入力するだけで(もちろんEnterキーを押しても)どちらでも動作します。

12
octa

これらはあなたが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

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

4
0_o

コンソール行にlogoutを書くことができます Enter もちろん)。

4
Etienne

MacOS:sshがハングするときは、次のシーケンスを使います。

ENTER 
SHIFT+`
.

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

2