每当有人通过 SSH 登录时调用进程




每当有人尝试通过 SSH 连接到服务器(例如 Ubuntu 14.04)时,我都会尝试调用 ruby 脚本。
例如,有人尝试使用 ssh root@serverip 登录,应该调用我的 ruby 脚本,并且只有在脚本返回 true 并且如果返回 false 时,登录过程才应该继续,如果返回 false,则应关闭连接。

我怎样才能做到这一点?

谢谢。

为了满足您的要求,如果您使用ForceCommand选项,您还应该使用$SSH_ORIGINAL_COMMAND环境变量:

ForceCommand /path/to/script && $SSH_ORIGINAL_COMMAND

这将运行您的脚本,并根据/path/to/script的退出状态,它将运行用户命令或退出会话。

您可以尝试在服务器的sshd_config文件中使用 ForceCommand 参数。 它相当简单,并且有据可查的在线:)

您在配置文件的底部输入:

ForceCommand /path/to/script

不确定是否可以检查某些条件并终止连接,但是这可能会指导您。

正如一位朋友在回答中提到的,基于退出代码的执行对我不起作用。

这是一个解决方法:-

正如一些人提到的,我在/etc/ssh/sshd_config中使用了这个

ForceCommand /path/to/script

然后在脚本中,如果他们满足某些条件,我就会打开 bash。例如在 bash 中

#!/bin/bash
if [ condition ]
then 
bash #This will open bash if condition is satisfied. 
//login
fi

谢谢大家!

相关内容

  • 没有找到相关文章

最新更新