ssh连接远程Host key verification failed.

问题描述

在对已部署的项目进行维护过程中,遇到的一个小问题,记录一下。

SSH连接云服务器ssh xxx@云服务器IP地址,提示:

The authenticity of host 'xxxxxx (xx.xxx.123.321)' can't be established.
ECDSA key fingerprint is SHA256:p3QHJXNIC1TJYWeIOttrVc98/R6BUFWu9/LiyKgXfFM.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Host key verification failed.

在上网查阅了相关资料,这是ssh连接的一种保护机制,本地主机在连接前会进行验证,我是由于更换了ssh密钥发生了这个问题

,按照网上说的直接敲回车yes无效。

又尝试了再次更换密钥,结果并没有什么用。

再尝试了多种方法之后终于解决了这个问题,下面总结了两种我尝试过可行的解决办法。

解决办法

第一种

就是在ssh连接过程中直接去掉主机验证

只需要在ssh命令后面加上 “-o StrictHostKeyChecking=no” 参数即可,比如(用ssh连接github作为测试)

ssh -T git@github.com
----->
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Host key verification failed.

输入变为

ssh -T git@github.com -o StrictHostKeyChecking=no
----->
Warning: Permanently added 'github.com,20.205.243.166' (ECDSA) to the list of known hosts.
Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.

可以看到就ssh连接成功了

第二种

给本地的known_hosts文件中添加连接验证

在命令行中输入"ssh-keyscan -t rsa 服务器ip >> xxxx\ .ssh\known_hosts" (xxxx为你的ssh文件路径),例如

ssh-keyscan -t rsa github.com >> C:\Users\asus\.ssh\known_hosts
----->
# github.com:22 SSH-2.0-babeld-dc5ec9be

添加成功后即可正常ssh连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值