Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSH secure shell服务中的用户协议横幅_Ssh_Banner - Fatal编程技术网

SSH secure shell服务中的用户协议横幅

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

我正在寻找一些帮助,以便在使用SSH连接到远程服务器时显示登录横幅,以显示消息,然后提示用户“是或否”。只有在输入“是”时,SSH期间才会提示用户输入密码

我知道可以使用/etc/issue.net配置登录横幅,然后在/etc/ssh/sshd_config中取消对行横幅的注释,然后重新启动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
)。

在首先发出密码之前,要求用户同意您想要的任何策略是否更有意义?这感觉像是一个不必要的障碍,可能是授权用户登录。我理解。但是,只有当他们接受“是”的时候,我们才想更进一步。我认为第二句话是基于对SSH工作原理的误解。AFAICT在用户经过身份验证之前,ssh服务器无法向用户显示任何内容。(此外,如果用户将公钥上载到其
授权密钥文件
中,则不会提示用户输入密码。)谢谢。但是,在/etc/passwd中,在用户接受协议后,它仍然应该根据用户名/密码对用户进行身份验证。在上面,当您输入“yes”时,为什么我们有/bin/bash?Shell可以是,所以只需将
/bin/bash
替换为脚本的完整路径。您必须为每个想要查看它的用户更改它。它在用户登录后显示,但如果他们不回答“y”,则连接将关闭。“只有在输入“是”时,才会提示用户在SSH期间输入密码。”在服务器上执行的任何操作都将在用户登录后执行。我认为这是不可能的。甚至OpenSSH横幅也不是标准。据我所知,OpenSSH客户端只支持它,至少它不能与Putty或ConnectBot(Android)一起工作。正常交互仅在身份验证后开始。您可以设置一个横幅,如“通过登录您接受协议”,但正如我所说的,并非所有客户端都支持该横幅。