LocalCommandでSSHを終了できますか?

LocalCommandでSSHを終了できますか?

これがSSHを使用するLocalCommandの意図されたユースケースではないことはわかっていますが、コマンドを実行してからLocalCommandを使用して直接SSHセッションを終了したい場合は可能ですか?

たとえば、

LocalCommand <some command>; exit

上記の方法を試しましたが、うまくいかないようですが、まだシェルが作成されます。

答え1

解決策1:

ssh [email protected]  'cd foo/bar && rm *.foobar'

これはまだ出力を標準出力として出力しますが、コマンドを実行した後はデフォルトで終了します。

解決策2:

ユースケースの回避策:上記の説明に従って、このsshコマンドにのみsshを使用してください。

次のファイルを編集できます。/etc/profile

最後の行に実行するコマンドをすべて入力し、終了を入力します。

前任者:

ls / > /tmp/output
exit

これでコマンドが実行され、セッションが終了します。

justを使用して呼び出すことができ、ssh user@host他のものは必要ありません。

PS:これは単にコマンドを実行して終了します。システムにSSH接続して操作を実行したい場合は、これを実行できないことに注意してください。エクスポートの最後の行を削除しない限り。

答え2

ローカルコマンドは SSH クライアントプロセスの子プロセスです。セッションを閉じるには、kill local コマンドの親クライアントを終了します。

LocalCommand kill $PPID

その後、SSHがリモートホストに接続され、認証が実行されると、リモートコマンドを実行する前にクライアントがシャットダウンされます。

ポイントは見えません。ログイン後すぐに終了するランダムなリモートコマンド(またはssh '')を実行してみてはいかがでしょうか。ssh :

関連情報