在使用Windows 10上的Visual Studio Code(VS Code)远程连接Ubuntu 20.04服务器时,遇到了以下错误:
错误的原因
这个错误消息表明,SSH 客户端检测到远程主机的 ECDSA 公钥已更改。可能是由于以下原因之一:
- 远程主机的公钥已更改:可能是由于重新安装操作系统或重新生成 SSH 密钥。
- 中间人攻击的潜在风险
- 连接到错误的服务器:可能不小心连接到了错误的服务器,导致公钥不匹配。
解决方法
要解决这个问题,可以按照以下步骤操作:
方法一:移除旧的公钥记录
-
手动编辑
known_hosts
文件:- 打开
C:\Users\Jiangsz\.ssh\known_hosts
文件,此处要改为你的电脑文件路径 - 找到并删除第四行的记录(错误消息中提到有问题的 ECDSA 密钥在第四行)。
- 保存并关闭文件。
- 打开
-
使用命令移除旧的公钥记录:
-
在 PowerShell 或 CMD 中运行以下命令来删除特定主机的记录:
ssh-keygen -R ip
-
方法二:接受新的公钥
-
再次尝试连接:
-
移除旧的公钥记录后,再次尝试通过 SSH 连接到远程服务器:
ssh username@ip
-
当提示你接受新的公钥时,确认并接受。
-
备注:我的ubuntu服务器的username是root,你需要根据服务器上分配给你的用户名进行相应的更改。
-
方法三:临时禁用严格检查(不推荐)
这种方法仅适用于紧急情况下,不推荐长期使用,因为它会降低安全性。
-
使用
-o
选项禁用严格检查:ssh -o StrictHostKeyChecking=no username@ip