sun*_*ide 2 scripting ubuntu ssh
在 Ubuntu 上,我希望我的 OpenSSH 服务器在用户使用 SSH 登录时启动脚本,最好是传递主机名或 IP 以及用户名。此外,我希望它在会话终止时(传递用户名)运行脚本。这些脚本不应在用户会话中运行,而应在系统范围内运行。
这个想法是在登录和注销时发出音频警告,例如使用espeak,并在外部显示器上显示信息。
我已经看到有一个pam-scripts包,但我不确定这是否符合我的要求,也不知道如何使用它。
任何帮助表示赞赏!——马库斯
(我也在askubuntu上发布了这个问题。)
这是一个由 sshd_config 中的 ForceCommand 调用的包装脚本。这区分了登录命令和通过 ssh 调用的命令,例如ssh host "ls -l",因为您可能希望以不同的方式处理它们。
#!/bin/bash
if [ -n "$SSH_ORIGINAL_COMMAND" ]; then
eval $SSH_ORIGINAL_COMMAND
else
echo "LOGIN: $USER $SSH_CONNECTION" >> /tmp/ssh.log
$SHELL
echo "LOGOUT: $USER $SSH_CONNECTION" >> /tmp/ssh.log
fi
Run Code Online (Sandbox Code Playgroud)
你可以用你想要的任何东西替换 echo 命令。IP 信息在 中$SSH_CONNECTION,随心所欲。
如果您调用 this /usr/local/bin/ssh-command.sh,您会将其添加到您的sshd_config:
ForceCommand /usr/local/bin/ssh-command.sh
Run Code Online (Sandbox Code Playgroud)
使用它Match来仅捕获某些用户可能是一个好主意。假设所有用户都在“gobias”组中:
Match Group gobias
ForceCommand /usr/local/bin/ssh-command.sh
Run Code Online (Sandbox Code Playgroud)
不管怎样,也许值得一试。
| 归档时间: |
|
| 查看次数: |
3091 次 |
| 最近记录: |