KNOWN_HOSTS处理

简介:

在平时工作中,有时候需要SSH登陆到别的linux主机上去,但有时候SSH登陆会被禁止,并弹出如下类似提示:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you right now (man-in-the-middle attack)!It is also possible that the RSA host key has just been changed.The fingerprint for the RSA key sent by the remote host is36:68:a6:e6:43:34:6b:82:d7:f4:df:1f:c2:e7:37:cc.Please contact your system administrator.Add correct host key in /u/xlian008/.ssh/known_hosts to get rid of this message.Offending key in /u/xlian008/.ssh/known_hosts:2RSA host key for 135.1.35.130 has changed and you have requested strict checking.Host key verification failed.

比较奇怪,于是研究了一下。 ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。我在上面列出的情况,就是这种情况。

原因:一台主机上有多个Linux系统,会经常切换,那么这些系统使用同一ip,登录过一次后就会把ssh信息记录在本地的~/.ssh/known_hsots文件中,切换该系统后再用ssh访问这台主机就会出现冲突警告,需要手动删除修改known_hsots里面的内容。

有以下两个解决方案:

  1. 手动删除修改known_hsots里面的内容; (清除旧的公钥信息ssh-keygen -R 192.168.0.10)
  2. 修改配置文件“~/.ssh/config”,加上这两行,重启服务器。
    StrictHostKeyChecking no

UserKnownHostsFile /dev/null

优缺点:

  1. 需要每次手动删除文件内容,一些自动化脚本的无法运行(在SSH登陆时失败),但是安全性高;
  2. SSH登陆时会忽略known_hsots的访问,但是安全性低;

其它:

  1. rm -rf ~/.ssh/known_hosts
    优点:干净利索 缺点:把其他正确的公钥信息也删除,下次链接要全部重新经过认证
  2. vi ~/.ssh/known_hosts 删除对应ip的相关rsa信息(本例可知删除53行信息即可)
    优点:其他正确的公钥信息保留缺点:还要vi,还要找到对应信息,稍微优点繁琐

linux下经常遇到known_hosts问题,例如git clone一个ssh协议的远程库,就会交互询问是否接受远程服务器的fingerprint,当执行一些自动化脚本时就得通过expect来处理这种情况。

今天搜索了一下,整理了相关处理办法。

linux需要接受和校验fingerprint的原因是避免受到DNS Hijack之类的攻击。具体原理是第一次访问远程服务器时从远程服务器接受一个fingerprint,实际上是一个rsa或者dsa公钥,将这个公钥保存在~/.ssh/known_hosts里,下次访问该服务器时就会通过这个公钥校验,如果校验不通过就会发出警告。

如果要让ssh不去校验fingerprint有两种办法,一个是ssh时加上-o StrictHostKeyChecking=no参数,这只会影响本次操作:

  1. ssh -o StrictHostKeyChecking=no username@hostname.com
    另外永久解决方案是在/etc/ssh/ssh_config或者~/.ssh/config里配置StrictHostKeyChecking no,修改哪个文件取决于你想影响全局还是当前用户。

另外一种方案是预先将远程服务器的fingerprint存入known_hosts,这样就不会出现询问的情况。

ssh-keygen -R [hostname]

ssh-keygen -R [ip_address]

ssh-keygen -R [hostname],[ip_address]

ssh-keyscan -t rsa [hostname],[ip_address] >> ~/.ssh/known_hosts

ssh-keyscan -t rsa [ip_address] >> ~/.ssh/known_hosts

ssh-keyscan -t rsa [hostname] >> ~/.ssh/known_hosts
ssh-keygen是将已存在的服务器公钥清除,避免重复添加。

ssh-keyscan则是获取远程服务器的fingerprint,如果还想获取dsa公钥则将rsa改成rsa,dsa

参考:

http://serverfault.com/questions/132970/can-i-automatically-add-a-new-host-to-known-hosts

http://blog.csdn.net/yasaken/article/details/7348441

相关文章
|
Linux
Linux制作deb格式安装包教程
Linux制作deb格式安装包教程
1944 0
|
网络协议 安全 测试技术
手撕测试tcp服务器效率工具——以epoll和io_uring对比为例
手撕测试tcp服务器效率工具——以epoll和io_uring对比为例
661 2
|
Kubernetes Cloud Native Linux
阿里云基于Cilium的高性能云原生网络
你知道吗,这个方案基于Cilium & eBPF来实现。在此之前,Google的GKE和Anthos也宣布基于Cilium+eBPF实现了新的容器网络数据面V2方案。但阿里云的方案会有所不同,阿里云采用Terway IPVLAN+Cilium的eBPF结合的方式。
13326 1
阿里云基于Cilium的高性能云原生网络
|
6月前
|
弹性计算 测试技术 对象存储
2026年阿里云新用户购买云服务器活动解析:免费试用、抢购活动、云服务器特价及热门实例折扣
2026年阿里云为新用户推出免费试用与云服务器特惠活动。新用户可免费试用160+云产品,试用结束后仍享新用户优惠价。此外,还有轻量应用服务器抢购和云服务器低价长效特惠,配置从2核2G到2核4G不等,价格低至38元/年。热门实例有折扣,满足企业级与高性能需求。同时,阿里云还为新用户提供迁云补贴券、出海补贴券、无门槛优惠券等,降低购买成本。
|
4月前
|
存储 机器学习/深度学习 人工智能
阿里云 EBS 云盘克隆公测上线,“克隆+预热”双引擎支撑 Agent Sandbox 大规模并发启动
阿里云 EBS 推出“云盘克隆+快照预热”双引擎,毫秒级加载镜像,支撑 AI Agent Sandbox 大规模并发启动。克隆实现同区云盘秒级复制,预热消除冷启动延迟,最高支持 1 万盘并发创建,存储成本降 80%,已公测开放。
392 0
|
10月前
|
存储 SQL 人工智能
Windows Server 2025 中文版、英文版下载 (2025 年 12 月更新)
Windows Server 2025 LTSC x64 (updated Dec 2025)
1642 1
|
7月前
|
人工智能 监控 安全
阿里云/本地部署OpenClaw配置大模型API步骤,对接AKShare搭建全自动A股监控系统实战教程
对于普通投资者而言,实时盯盘耗时费力、专业行情接口价格高昂、手动复盘效率低下、移动端预警难以实现,是长期存在的痛点。OpenClaw(Clawdbot)与AKShare组合,为个人投资者提供了一套完全免费、本地优先、自动化运行、支持多渠道消息推送的AI股票监控解决方案。AKShare提供开源免费的A股、港股、美股、期货、基金等全量金融数据,无需付费接口;OpenClaw作为AI自动化中枢,负责数据调度、指标计算、AI分析、异动监控与消息推送,两者结合可实现7×24小时无人值守盯盘、AI智能解读、微信/飞书实时预警,且全程本地运行,不涉及交易、不登录券商账户,安全无风控。
1907 0
|
存储 编解码 数据可视化
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
|
机器学习/深度学习 人工智能 算法
深度解析:基于卷积神经网络的宠物识别
宠物识别技术随着饲养规模扩大而兴起,传统手段存在局限性,基于卷积神经网络的宠物识别技术应运而生。快瞳AI通过优化MobileNet-SSD架构、多尺度特征融合及动态网络剪枝等技术,实现高效精准识别。其在智能家居、宠物医疗和防走失领域展现广泛应用前景,为宠物管理带来智能化解决方案,推动行业迈向新高度。
1435 66
|
编解码 Java Android开发
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流
​SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRT Streamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。另一款APP直播框架RTMP Streamer支持RTMP直播和RTSP直播,不支持SRT协议的直播。而本文讲述的SRT Streamer支持RTMP直播和SRT直播,不支持RTSP协议的直播。有关RTMP Streamer的说明参见之前的文章《使用RTMP Streamer开启APP直播推流》,下面介绍如何使用SRT Streamer开启手机直播。
622 4
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流

热门文章

最新文章