自学内容网 自学内容网

解决错误:Failed to add the host to the list of known hosts

SSH 遇到以下错误:

The authenticity of host '[192.168.xx.xxx]:22 ([192.168.xx.xxx]:22)' can't be established.
ED25519 key fingerprint is SHA256:5UTlEnf2Cm4CV2wo7YjoG49eLusZR2kkwO1fDNM4j1U.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Failed to add the host to the list of known hosts (/xxxx/xxxxx/.ssh/known_hosts).
Already up to date.

你遇到的提示信息说明在通过 SSH 连接到 192.168.xx.xxx(端口 22)时,SSH 客户端无法验证该主机的真实性,要求你手动确认连接。但确认后,SSH 客户端无法将该主机的密钥添加到本地的 known_hosts 文件中,提示 “Failed to add the host to the list of known hosts”,表示写入失败。

问题可能的原因:

  • known_hosts 文件权限问题:
  • 当前用户可能没有对 .ssh/known_hosts 文件的写权限,导致无法将新主机的密钥写入该文件。
  • known_hosts 文件不存在或损坏:
  • 如果 .ssh/ 目录下没有 known_hosts 文件,或者文件损坏,也会导致 SSH 无法添加新主机信息。

解决方法:

1. 检查 .ssh 目录和 known_hosts 文件的权限

你可以通过以下命令检查 .ssh 目录及文件的权限:

ls -l ~/.ssh/

确保 known_hosts 文件的权限是 600.ssh 目录的权限是 700。如果权限不正确,可以通过以下命令修复:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/known_hosts

2. 手动创建或修复 known_hosts 文件

如果 known_hosts 文件不存在,可以手动创建该文件:

mkdir -p ~/.ssh
echo '' > ~/.ssh/known_hosts
chmod 600 ~/.ssh/known_hosts

3. 手动添加主机密钥

如果自动添加失败,可以手动将该主机的密钥添加到 known_hosts 文件中。使用以下命令获取主机的密钥并添加:

ssh-keyscan -p 22 192.168.xx.xxx >> ~/.ssh/known_hosts

这将直接把目标主机的公钥添加到你的 known_hosts 文件,避免再次出现提示。

4. 检查系统权限或限制

在某些情况下,系统的安全设置(如 SELinux 或 AppArmor)可能会限制对 SSH 相关文件的更改。你可以检查系统日志或设置,确保这些安全模块没有阻止 SSH 写入 known_hosts 文件。

完成这些步骤后,SSH 客户端应能正常连接并记住该主机的公钥。


原文地址:https://blog.csdn.net/galoiszhou/article/details/142588645

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!