我想防止基于条件逻辑的交互式和非交互式ssh 登录。我需要测试用户名并给出错误消息。
使用 sftp(非交互式 ssh)的人也应该接受幸运测试。
我将如何实施?我对系统有完全的控制权。
我尝试使用 sshd ForceCommand,但根据https://stackoverflow.com/a/33714333/746461它不适用于 notty。
我不熟悉 PAM,我怀疑 PAM 是否可以在登录是交互式的情况下输出自定义错误消息。
https://linuxhint.com/understanding_bash_shell_configuration_startup/表示带有选项的非交互式登录 shell--noprofile
可以绕过所有 bash 配置文件。这就是为什么我不能在那里写我的逻辑。
我想通了。我可以实现一个 PAM 模块来做到这一点。
将以下内容保存到文件
/root/checkConnections
.然后在 /etc/pam.d/sshd 中,添加
pam_exec.so
执行 shell 脚本,stdout
向用户终端输出消息。当条件失败时,效果是这样的。