Linux – ssh scp等消除每次问yes/no方法 

我们在写 shell 脚本的时候通常会需要用 ssh 登录到远程服务器执行一些命令。
这个时候就懵逼了,我 ssh 直接执行过去了,怎么去应答这个询问啊。 这个时候就需要知道 ssh 有一个非交互方式登录 StrictHostKeyChecking

主机公钥确认 StrictHostKeyChecking

  1. StrictHostKeyChecking=no 最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网测试时建议使用。如果连接server的key在本地不存在,那么就自动添加到文件中(默认是known_hosts),并且给出一个警告。
  2. StrictHostKeyChecking=ask 默认的级别,就是出现刚才的提示了。如果连接和key不匹配,给出提示,并拒绝登录。
  3. StrictHostKeyChecking=yes 最安全的级别,如果连接与key不匹配,就拒绝连接,不会提示详细信息。


链接:https://www.jianshu.com/p/ebcf41c75786

ssh scp等消除每次问yes/no方法 

用命令 ssh -l username hostname 
Are you sure you want to continue connecting (yes/no)?  
1、	这个是ssh安全认证是的一个RSA认证。
此处必须选择yes才能连接。 第一次yes后,他会询问你是否永久把这个RSA认证加入本地,选择yes后,以后不会再出现提醒。 每次登陆只需要输入密码即可。

2、	也可以不用输入1中的yes,但是需要修改本机配置。    
/etc/ssh/ssh_config 中的 
#  StrictHostKeyChecking ask 
改成    StrictHostKeyChecking no      

 这样多此一举的询问就不在了

3.   重启服务生效:  systemctl  restart sshd

----------------------------------------------------------------------------
#Code:

mkdir -p ~/.ssh && echo "Host *" > ~/.ssh/config && echo "StrictHostKeyChecking no" >> ~/.ssh/config && echo "UserKnownHostsFile /dev/null" >> ~/.ssh/config
sudo chmod 400 ~/.ssh/config  
cat ~/.ssh/config


echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config
cat /etc/ssh/ssh_config
systemctl restart sshd

发表评论