OpenSSH:SSH接続でコマンドを実行する方法

OpenSSH:SSH接続でコマンドを実行する方法

サーバーに新しいSSH接続が確立されたら、いくつかのコマンド(bashスクリプトの実行など)が実行されるようにOpenSSHサーバーをカスタマイズする必要があります。このコマンドは、SSH接続用にサーバーを「準備」する必要があります。

したがって、クライアントの観点から見ると、これは通常のSSH接続にすぎません。ssh [email protected]

ただし、サーバー側ではコマンドを実行してからSSHセッションを開始できます。

OpenSSHでこれを達成できますか?それとも独自のSSHサーバーを作成する必要がありますか?

SSH接続が終了しても同じことができますか?

答え1

たぶん私が意味するものを誤解しているかもしれませんが、ユーザー接続ではなくサーバーコンテキストでコマンドを実行したい場合は、以下のForceCommandようにソケット対応のSSHDインストールを使用できます。

http://0pointer.de/blog/projects/socket-activated-containers.html

sshd始める前にスクリプトを実行するには、複数のExecStartステートメント(sshd最後のステートメント)を使用してください。

答え2

はい、sshd_configでForceCommandを使用してください。 sshd_configのマニュアルページに良い説明があります。

https://linux.die.net/man/5/sshd_config

接続を続行するには、SSH_ORIGINAL_COMMANDラッパースクリプトで元のコマンド(env.変数に保存されている)を実行するだけです。

関連情報