ssh 在安全加固场景下需要增加额外参数进行远程访问

本文介绍在客户的操作系统,做了ssh安全加固后,一些默认的参数不再生效,对某些通过ssh进行操作的代码需要修正额外的参数。

代码

ssh -o NumberOfPasswordPrompts=1 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null

说明

NumberOfPasswordPrompts

在登陆放弃前,尝试输入密码的次数。默认是3次。

如果是无密码输入,可以指定参数值为0

-o NumberOfPasswordPrompts=0

如果不确定,建议设置为1,因为一些安全加固环境,最多允许1次,不允许多次尝试,参数为1可以确保可用。

StrictHostKeyChecking

强制主机密钥检测。默认是ask。在后台非交互环境,参数设置为no,不要检测,避免因为本地环境变动导致登录失败。

如果将此标志设置为“yes”,ssh(1)将不会自动执行将主机密钥添加到~/.ssh/known\u hosts文件,并拒绝连接到主机密钥已更改的主机。这将提供最大针对特洛伊木马攻击的保护,尽管它可能很烦人。当/etc/ssh/ssh_known_hosts文件维护不好时或者经常连接到新主机时。这个选项强制用户手动添加所有新主机。如果这个标志设置为“否”,ssh将自动添加新的主机密钥到用户已知的主机文件。如果此标志设置为“ask”,新的主机密钥将仅添加到用户已知的主机文件中在用户确认这是他们真正想要做的事情之后,ssh将拒绝连接到主机密钥无效的主机改变。将自动验证已知主机的主机密钥-在任何情况下都是如此。参数必须为“yes”、“no”或“no”``询问“”。默认值为“ask”。

UserKnownHostsFile

指定已知的主机连接列表文件。用空格分隔。建议设置为/dev/null 避免环境导致后台执行报错。默认是

~/.ssh/known_hosts ~/.ssh/known_hosts2.