2021/4/27

ssh 登入,登出時自動執行script..

這個,利用 sshd_config 中 ForceCommand 的功能..
ForceCommand 是限制某個 user 使用 ssh 連線後只能做什麼事(command) 用的 (簡單來說是這樣)。
所以寫一個 wrapper script。
ssh 進來,就 run 這個 script....
你就可以把要做的事寫在 script裡。
做好之後,再 call shell
然後 user exit 的時候, wrapper 就會從 shell 之後繼續。
就可以在那邊寫 logout 時要做的事。

測試..

修改 /etc/ssh/sshd_config,加上一行
ForceCommand /usr/local/bin/ssh-wrapper.sh
然後 /usr/local/bin/ssh-wrapper.sh 的內容是:
#!/bin/bash
touch /data/aaaa
${SSH_ORIGINAL_COMMAND:-/bin/bash --login}
touch /data/bbbb
這樣在 ssh 連線時,/data 下會出現 aaaa,
exit 後,會有 bbbb

**
因為是做在 ssh,所以在 console login 的化,不會觸發這個 wrapper script


shell script 說明..(ref:bash man page)
${parameter:-word}
Use Default Values. If parameter is unset or null, the expansion of word is substituted. 
Otherwise, the value of parameter is substituted.

沒有留言:

張貼留言