同様のコマンドでは、ssh <destination> true
ssh はターゲットでコマンドを実行し、セッションを終了しtrue
ます。実行時にssh <destination> exit
セッションの終了を開始するには?他のコマンドと同様に、sshプログラム自体ですか、それともターゲットexit
が実行するコマンド自体ですか?
SSHマニュアルには次のように記載されています。The session terminates when the command or shell on the remote machine exits and all X11 and TCP connections have been closed.
答え1
exit
リモートシェルで実行されるコマンドは、そのシェルを終了します。実行時にtrue
リモートシェルは実行するコマンドがなくなったため終了しますが、exit
後で追加のコマンドがあっても(すべてのスクリプトと同様に)終了します。
SSHセッションの簡単な場合ただトンネルを設定しない場合、または接続共有を使用せずに一連のコマンドを実行すると、セッションはリモートシェルがシャットダウンしたときにセッションが終了します。どのようにリモートシェルが終了します(exit
一部のエラー、シグナルの受信、HUP
または単にスクリプトの終わりに到達して)。
このマニュアルには、「[...]とすべてのX11とTCP接続が閉じています」と記載されています。これは意味するつながるリモートのため終了しない可能性があります。シェル終了しました。たとえば、および(ssh -M
またはssh -S
、および参照)ControlMaster
の設定を使用して接続共有を使用すると、これが発生します。 SSHトンネリングは、SSHセッションが明示的に閉じられるまでアクティブなままであると考えています。~/.ssh/config
man ssh
man ssh_config
SSH接続を実際に終了するには、以下を送信できます。exit
制御コマンド使用ssh -O exit user@host
。これにより、共有へのすべてのSSHセッションが終了しますuser@host
。