Unable to negotiate with 172.31.3.81 port 22: no matching host key type found. Their offer: ssh-rsa
时间: 2024-10-14 13:00:22 浏览: 54
ganymed-ssh2-263.jar
3星 · 编辑精心推荐
当你尝试通过SSH连接到IP地址172.31.3.81,端口22上的一台远程服务器时,收到了如下的错误信息:“Unable to negotiate with 172.31.3.81 port 22: no matching host key type found. Their offer: ssh-rsa”。这个错误意味着你的本地系统找不到与目标服务器提供的公钥类型匹配的私钥来进行加密通信。
"ssh-rsa"是一种常见的SSH密钥类型,代表的是RSA算法。通常,当你第一次连接到一个新的服务器时,它会提供其公钥让你验证。你需要将该公钥添加到你的信任存储(如`~/.ssh/known_hosts`文件),或者手动输入确认,以便下次能够自动识别并建立安全连接。
要解决这个问题,可以按照以下步骤操作:
1. **检查本地的信任存储**:查看`known_hosts`文件中是否有该服务器的信息,如果有误,删除对应行或更新为正确的公钥。
2. **手动添加公钥**:如果`known_hosts`中没有,你可以命令行输入`ssh-keyscan -t rsa 172.31.3.81 >> ~/.ssh/known_hosts`来获取并添加新的公钥。
3. **输入主机键指纹**:直接在SSH连接过程中,当提示“Are you sure you want to continue connecting (yes/no)?”时,可以选择“yes”,然后手动输入公钥的指纹信息进行确认。
4. **生成并安装本地私钥**:如果你还没有生成过SSH密钥对,需要先在本地生成并配置(`ssh-keygen`),然后把新生成的私钥文件(`id_rsa`)添加到SSH代理(如`eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_rsa`)。
阅读全文