回答:
これを行うには、構成ファイル(/ etc / ssh / sshd_config)に次のパラメーターを追加します。
ForceCommand Forces the execution of the command specified by ForceCommand, ignoring any command supplied by the client and ~/.ssh/rc if present. The command is invoked by using the user's login shell with the -c option. This applies to shell, command, or subsystem execution. It is most useful inside a Match block. The command originally supplied by the client is available in the SSH_ORIGINAL_COMMAND environment variable. Specifying a command of “internal-sftp” will force the use of an in-process sftp server that requires no support files when used with ChrootDirectory.
他のオプションは、ユーザーごとに.ssh / rcファイルを使用することです。
ForceCommandメソッドを使用するにForceCommand /usr/bin/ownscript
は、ファイルの最後/etc/ssh/sshd_config
(サーバー上)に追加するだけです。
スクリプトは次のようになります。
#!/bin/bash
#Script file for ssh
#
#put your commands here
echo "test" > /tmp/test.txt
#
#exit by calling a shell to open for the ssh session
/bin/bash
スクリプトをchmodすることを忘れないでください sudo chmod +x /usr/bin/ownscript
/etc/ssh/sshrc
ファイルを作成できます。をご覧くださいman 8 ssh
。これを単一のユーザーに使用する場合は、を使用します~/.ssh/rc
。
以下は、/etc/ssh/sshrc
誰かがマシンにログインしたときにdbusで通知するサンプルです。忘れないでくださいchmod +x
:
#!/bin/bash
ip=`echo $SSH_CONNECTION | cut -d " " -f 1`
notify-send -u CRITICAL "SSH connection from ${ip}" "User $USER just logged in from $ip"
ログオン中にスクリプトを実行するには、/ etc / profileスクリプト内からの呼び出しとしてスクリプトを追加します。これは、sshログオンだけでなく、ログオンごとに実行されます。