原因
SSH Agent 在第一次连接某个 host 时需要主机公钥确认,否则会报出这个错。
就相当于你每次使用 ssh 连接一台新的主机时会出现如下提示。
The authenticity of host 'some host' can't be established.
ECDSA key fingerprint is SHA256:R8RNyTeVLIZPOUfAYkl9rsFfa7eiClvcEadxoz2Hv2o.
Are you sure you want to continue connecting (yes/no)?
输入yes后,你的电脑会在 ~/.ssh/known_hosts
中添加该主机的记录,再连接服务器,并且让你在之后不用再次验证。
解决方法
-
在远程连接是带上
StrictHostKeyChecking=no
参数可以跳过检测进行远程连接。所以,我们在执行远程连接前,先运行一次如下命令。这样之后对这个 host 的连接就不会报出这个错误了ssh -o StrictHostKeyChecking=no [user]@[host] pwd
-
我们也可以在
[JENKINS_HOME]/.ssh/config
文件中 (用 docker 部署 jenkins 的,进容器后的~/.ssh/config
路径就是) 添加如下内容即可跳过确认步骤(注意:这里 config 文件的所属用户要是运行 jenkins 的用户):Host * StrictHostKeyChecking no