我试图在任何人尝试SSH进入服务器时调用ruby脚本(比如说Ubuntu 14.04)。
例如,某人尝试使用ssh root @ serverip登录,并且应该调用我的ruby脚本,并且只有当脚本返回true时才会继续登录过程,如果返回false,则应该关闭连接。
我怎样才能做到这一点?
感谢。
答案 0 :(得分:1)
您可以尝试使用服务器的sshd_config文件中的 ForceCommand 参数。它非常直接且在线记录良好:)
您输入配置文件的底部:
ForceCommand /path/to/script
不确定您是否可以检查某些条件并终止连接,但这可能会指导您。
答案 1 :(得分:1)
要满足您的要求,如果您使用$SSH_ORIGINAL_COMMAND
选项,则还应使用ForceCommand
环境变量:
ForceCommand /path/to/script && $SSH_ORIGINAL_COMMAND
这将运行您的脚本,并根据/path/to/script
的退出状态,它将运行用户命令或退出会话。
答案 2 :(得分:0)
正如朋友在回答中提到的那样,基于退出代码的执行对我不起作用。
这是一种解决方法: -
正如一些人所说,我在/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
谢谢大家!