我正在寻找一些帮助来显示登录横幅,当连接到远程服务器使用SSH显示一条消息,然后用“是或否”提示用户。只有在输入“是”时,才会提示用户在SSH期间输入密码。SSH安全外壳服务中的用户协议横幅
我知道登录横幅可以使用/etc/issue.net配置,然后在/ etc/ssh/sshd_config中取消注释行Banner,然后重新启动SSH。但是,如果我另外需要SSH来显示横幅后提示接受策略横幅,我该如何解决?
非常感谢您的帮助。
我正在寻找一些帮助来显示登录横幅,当连接到远程服务器使用SSH显示一条消息,然后用“是或否”提示用户。只有在输入“是”时,才会提示用户在SSH期间输入密码。SSH安全外壳服务中的用户协议横幅
我知道登录横幅可以使用/etc/issue.net配置,然后在/ etc/ssh/sshd_config中取消注释行Banner,然后重新启动SSH。但是,如果我另外需要SSH来显示横幅后提示接受策略横幅,我该如何解决?
非常感谢您的帮助。
你可以使用这样的事情:
#!/bin/bash
cat /usr/share/agreement.txt
read -p "Do you accept? (y/n) " choice
if [[ $choice = y ]] ; then
/bin/bash
fi
与协议的内容创建文件/usr/share/agreement.txt
并使脚本可执行文件(使用chmod +x
)。
然后编辑/etc/passwd
并设置命令运行到该脚本的路径(例如/usr/share/agreement.sh
)。
谢谢Louis。但是,在用户接受协议后,在/ etc/passwd中,它仍然应该根据用户名/密码进行认证。在上面,当你输入“yes”时,为什么我们有/ bin/bash? – user3516942
此外,由于/ etc/passwd包含以下形式的条目:名称:密码:UserID:PrincipleGroup:Gecos:HomeDirectory:Shell,我们将在哪里设置命令来运行路径agreement.sh – user3516942
Shell可以[任何命令]( http://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/),所以只需用脚本的完整路径替换'/ bin/bash'即可。 –
在首先发布密码之前要求用户同意所需的任何策略是否更有意义?这对于大概授权的用户登录来说似乎是不必要的障碍。 – chepner
我明白了。但是,只有当他们接受说“是”时,我们才会进一步追求 – user3516942
我认为第二句话是基于对SSH工作方式的误解。 AFAICT ssh服务器无法向用户显示任何内容,直到用户通过身份验证之后。 (另外,如果用户将公钥上传到'authorized_keys'文件,它们将不会被提示输入密码。) – dcorking