经过ssh StrictHostKeyChecking解决自动化git项目问题

SSH 公钥检查是一个重要的安全机制,能够防范中间人劫持等黑客攻击。可是在特定状况下,严格的 SSH 公钥检查会破坏一些依赖 SSH 协议的自动化任务,就须要一种手段可以绕过 SSH 的公钥检查。git

首先看看什么是 SSH 公钥检查

SSH 链接远程主机时,会检查主机的公钥。若是是第一次该主机,会显示该主机的公钥摘要,提示用户是否信任该主机:安全

The authenticity of host '192.168.0.110 (192.168.0.110)' can't be established.
RSA key fingerprint is a3:ca:ad:95:a1:45:d2:57:3a:e9:e7:75:a8:4c:1f:9f.
Are you sure you want to continue connecting (yes/no)?

当选择接受,就会将该主机的公钥追加到文件 ~/.ssh/known_hosts 中。当再次链接该主机时,就不会再提示该问题了。 服务器

如何让链接新主机时,不进行公钥确认?

在首次链接服务器时,会弹出公钥确认的提示。这会致使某些自动化任务,因为初次链接服务器而致使自动化任务中断。或者因为  ~/.ssh/known_hosts 文件内容清空,致使自动化任务中断。 ssh

 

SSH 客户端的 StrictHostKeyChecking 配置指令,能够实现当第一次链接服务器时,自动接受新的公钥。在当前用户的 ~/.ssh目录下 若是存在config 直接编辑 不然新增spa

cd ~/.ssh
touch config && chmod 600 config

添加以下内容 (这里以coding为例).net

Host *coding.net
  StrictHostKeyChecking no

再次执行 git clone 将不会弹出公钥确认提示。code

参考: https://blog.csdn.net/aabbcc456aa/article/details/18981279blog

相关文章
相关标签/搜索