SSH接続を終了するにはどうしたらいいですか?
ソケットサーバにメッセージを送信するためにSSHでサーバに接続しているのですが、以下のようなコマンドを使用しています:
ssh 181.169.1.2 -p 5566
接続が確立してメッセージを書いて送信した後、テキストモードを終了できません。テキストをさらに入力するだけで終了してしまいます。
コマンドモードに戻れるコマンドやキーの組み合わせはありますか?
ソケットサーバにメッセージを送信するためにSSHでサーバに接続しているのですが、以下のようなコマンドを使用しています:
ssh 181.169.1.2 -p 5566
接続が確立してメッセージを書いて送信した後、テキストモードを終了できません。テキストをさらに入力するだけで終了してしまいます。
コマンドモードに戻れるコマンドやキーの組み合わせはありますか?
簡単な答えです。exit
それでもうまくいかない場合は…
ほとんどの SSH 実装には対話型セッション用のエスケープ文字が実装されており、 telnet の Ctrl-]
の組み合わせに似ています。デフォルトの SSH のエスケープ文字は ~
で、行頭に入力します。
対話的な OpenSSH セッションがスタックしていて、リモート側のシェルに exit
や CtrlD を入力しても終了できない場合 には、~
の後にドットの .
を入力することができます。入力行の先頭に確実にエスケープ文字を入力するには、最初に Enter を押すべきです。したがって、ほとんどの場合、次のようなシーケンスで SSH セッションが終了します:
Enter~.
例えば OpenSSH には、~.
以外にもエスケープシーケンスがあります。セッション中に ~?
を入力すると、その一覧が表示されるはずです。
~
の後に Ctrl-Z
が続くとセッションが中断され、 ~&
が直接バックグラウンドに置かれ、 ~#
がそのセッションで転送された接続のリストを表示します。 ~~
を 2 倍にしなければなりません。特別な値 -e
を設定すると、エスケープは無効になり、セッションは完全に透過的になります。 -e none
コマンドラインオプションの下にある OpenBSD man page on ssh (これは www.openssh.org から参照されています ) も参照してください。
SSH 接続を終了するにはどうすればいいですか?
2つの方法があります:
exit
の後に Enter キーを押すか、通常は Ctrl-d で普通に終了できますが、 ssh
と入力すると、 ssh はすぐに閉じてコマンドプロンプトに戻るはずです。前者のオプションは直感的にわかるはずですが、後者のオプションはどうやって知ることができるのでしょうか?
$ man ssh
は SSH ドキュメント を与えてくれますが、その中にはエスケープ文字に関する次のセクションがあります。
SSHシェルを終了しますか?
exit
と入力してEnterを押すか、Ctrl+Dで終了します。
これらはサポートされている文字で、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 キーを押すと、エスケープシーケンスのリストを閉じることができます。
MacOS : ssh がハングアップした場合、以下のシーケンスを使用します:
ENTER
SHIFT+`
.
ここで shift+“ は ~ (チルダ文字) を生成します。shift+”* は ~ (チルダ文字) を生成します。