known_hosts作用是什么?

举报
kwan的解忧杂货铺 发表于 2024/08/16 00:02:26 2024/08/16
【摘要】 known_hosts 文件的作用:身份验证:首次连接到 SSH 服务器时,客户端会获取并记录服务器的公钥。之后每次连接,客户端都会比对已知的公钥与服务器提供的公钥,以确认服务器的真实性。防止中间人攻击:如果公钥发生变化,SSH 客户端会警告用户可能存在安全风险,要求用户确认是否继续连接。 常见问题及解决方法:主机密钥变更警告:如果服务器更换了密钥或用户重装了系统,可能会出现警告。解决方法...

known_hosts 文件的作用:

  1. 身份验证:首次连接到 SSH 服务器时,客户端会获取并记录服务器的公钥。之后每次连接,客户端都会比对已知的公钥与服务器提供的公钥,以确认服务器的真实性。
  2. 防止中间人攻击:如果公钥发生变化,SSH 客户端会警告用户可能存在安全风险,要求用户确认是否继续连接。

常见问题及解决方法:

  1. 主机密钥变更警告:如果服务器更换了密钥或用户重装了系统,可能会出现警告。解决方法包括:

    • 使用ssh-keygen -R [hostname_or_IP]命令删除旧的密钥记录。
    • 使用ssh-keyscan -H [hostname_or_IP] >> ~/.ssh/known_hosts命令更新 known_hosts 文件,添加新的公钥。
    • 直接删除known_hosts文件,但这样会移除所有 SSH 连接的历史记录,不推荐使用。
  2. 编辑 known_hosts 文件:如果需要删除特定的公钥条目,可以直接编辑known_hosts文件,找到对应的公钥并删除。

  3. 自动化脚本中的密钥检查:在自动化脚本中,可能需要禁用密钥检查以避免交互式输入,可以通过设置StrictHostKeyChecking no实现,但这可能会降低安全性。

  4. 保护 known_hosts 文件:由于known_hosts文件的重要性,应当确保其不被未授权访问或篡改,通常该文件的权限设置为600,即只有所有者可以读写。

  5. 使用 HashKnownHosts 选项:为了提高安全性,可以启用HashKnownHosts选项,这样存储在known_hosts中的公钥将以散列形式存储,保护服务器的隐私。

  6. SSH 配置文件中的相关设置:在ssh_config文件中,可以设置UserKnownHostsFile指定known_hosts文件的位置,如果出现配置错误,如使用错误的选项名,会导致连接问题。

手动修改

# 清空缓存,删除相关的ip
vim  ~/.ssh/known_hosts

通过合理使用和管理known_hosts文件,用户可以提高 SSH 连接的安全性,有效预防潜在的网络攻击。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。