サーバーに新しい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.変数に保存されている)を実行するだけです。