SSH secure shell服务中的用户协议横幅
我正在寻找一些帮助,以便在使用SSH连接到远程服务器时显示登录横幅,以显示消息,然后提示用户“是或否”。只有在输入“是”时,SSH期间才会提示用户输入密码 我知道可以使用/etc/issue.net配置登录横幅,然后在/etc/ssh/sshd_config中取消对行横幅的注释,然后重新启动ssh。但是,如果我想在显示横幅后提示接受策略横幅,我该怎么做SSH secure shell服务中的用户协议横幅,ssh,banner,Ssh,Banner,我正在寻找一些帮助,以便在使用SSH连接到远程服务器时显示登录横幅,以显示消息,然后提示用户“是或否”。只有在输入“是”时,SSH期间才会提示用户输入密码 我知道可以使用/etc/issue.net配置登录横幅,然后在/etc/ssh/sshd_config中取消对行横幅的注释,然后重新启动ssh。但是,如果我想在显示横幅后提示接受策略横幅,我该怎么做 提前感谢您的帮助。您可以使用以下内容: #!/bin/bash cat /usr/share/agreement.txt read -p "Do
提前感谢您的帮助。您可以使用以下内容:
#!/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
)。在首先发出密码之前,要求用户同意您想要的任何策略是否更有意义?这感觉像是一个不必要的障碍,可能是授权用户登录。我理解。但是,只有当他们接受“是”的时候,我们才想更进一步。我认为第二句话是基于对SSH工作原理的误解。AFAICT在用户经过身份验证之前,ssh服务器无法向用户显示任何内容。(此外,如果用户将公钥上载到其授权密钥文件
中,则不会提示用户输入密码。)谢谢。但是,在/etc/passwd中,在用户接受协议后,它仍然应该根据用户名/密码对用户进行身份验证。在上面,当您输入“yes”时,为什么我们有/bin/bash?Shell可以是,所以只需将/bin/bash
替换为脚本的完整路径。您必须为每个想要查看它的用户更改它。它在用户登录后显示,但如果他们不回答“y”,则连接将关闭。“只有在输入“是”时,才会提示用户在SSH期间输入密码。”在服务器上执行的任何操作都将在用户登录后执行。我认为这是不可能的。甚至OpenSSH横幅也不是标准。据我所知,OpenSSH客户端只支持它,至少它不能与Putty或ConnectBot(Android)一起工作。正常交互仅在身份验证后开始。您可以设置一个横幅,如“通过登录您接受协议”,但正如我所说的,并非所有客户端都支持该横幅。