admin 管理员组

文章数量: 1184232

当目标服务器的密码更改或SSH密钥对更换时,客户端会报错,提示连接失败或者公钥不匹配。这是因为客户端的 known_hosts 文件存储了服务器的旧公钥,并且与服务器的新密钥不匹配。为了解决这个问题,我们需要从 known_hosts 文件中删除旧的公钥。

1. 在 Windows 上删除 known_hosts 中的旧密钥

  1. 打开 命令提示符PowerShell

  2. 执行以下命令来删除与目标主机相关的旧的公钥:

ssh-keygen -R <target_host> -f C:\Users\<用户>\.ssh\known_hosts

  • <target_host>:替换为目标主机的 IP 地址或域名。
  • <用户>:替换为当前 Windows 用户的用户名。

2. 在 Linux/Unix 上删除 known_hosts 中的旧密钥

方法 1:指定文件路径删除

打开终端,执行下列命令:

ssh-keygen -R <target_host> -f ~/.ssh/known_hosts

方法 2:默认删除操作(无需指定文件路径)

ssh-keygen -R <target_host>

这条命令会从默认的 ~/.ssh/known_hosts 文件中删除目标主机的旧公钥条目,前提是文件位于默认位置。

这样操作后,当你下次连接目标服务器时,客户端会重新接收并存储新的公钥,确保连接能够顺利建立。

本文标签: 密钥 命令 SSH SCP