ssh远程登录报错REMOTE HOST IDENTIFICATION HAS CHANGED!解决方式及原因
注意,文档中的ip和指纹已经替换为了ip.ip.ip.ip 和aa:... ,以免引起不必要的误会。
icode@test:~/lab/dir/sadf$ ssh remote_name@ip.ip.ip.ip
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa.
Please contact your system administrator.
Add correct host key in /home/hicode/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/hicode/.ssh/known_hosts:28
remove with: ssh-keygen -f "/home/hicode/.ssh/known_hosts" -R ip.ip.ip.ip
ECDSA host key for ip.ip.ip.ip has changed and you have requested strict checking.
Host key verification failed.
之前使用提示中的
remove with: ssh-keygen -f "/home/hicode/.ssh/known_hosts" -R ip.ip.ip.ip
删除了也就ok了。只是今天说是
/home/hicode/.ssh/known_hosts is not a valid known_hosts file.
Not replacing existing known_hosts file because of errors
我也不知道为什么。要下功夫想想原因了。
解决方式:然而登录时候的报错,当中有一句
Offending ECDSA key in /home/hicode/.ssh/known_hosts:28
删除掉文档中第28 行就可以
sed -i '28d' /home/hicode/.ssh/know_hosts
此时再登录就和第一次ssh登录就一致了。
why?
大学时候password学学的不好,大概是私钥加密。公钥解密。 私钥和公钥之间有全映射关系。因此即使想要伪造公钥的同一时候,也得提供出来伪造的公钥相应的私钥。
阮一峰老师翻译的一篇博客非常通俗易懂,这里附上链接数字签名是什么?
以我的推測,本次问题能够反映出来例如以下运行过程。
第一次连接时,server将已经生成的公钥(已存放在本地)发送给连接方,连接方没有相应的私钥。
server重装之后,生成的公钥发生了变化。连接方存放的还是曾经的公钥。
因此公钥不匹配。即认同为server身份已变。
(这样的严格验证host方式能够能够在server/etc/ssh/sshd.conf 文件里改变。SSH下know_hosts的作用(转))
解决方法是将原来的公钥给删除了,也就是一切重头再来。又開始了第一次的工作。
ssh登陆凭证
hicode@test:~/.ssh$ tree -h
.
├── [1.9K] known_hosts 自己的私钥+其它已连接的server公钥存放
└── [ 393] known_hosts.pub 公钥存放
0 directories, 2 files
我没有找到对known_hosts 的一些看法。由于大家都在说里面存放了公钥,可是我查看的时候好像档案开头有private key 的存在,怀疑这个文件里还夹杂了自己私钥内容。
两个文件部分内容已用... 来代替
file_content: known_hosts
-----BEGIN RSA PRIVATE KEY-----
MIIEpgIBAAKCAQEA64x5NuQz1PY3tLHwwu/hdr3f2o5BDcw5u7l/493iEKR3Mbpa
......
-----END RSA PRIVATE KEY-----
|1|KdYUlhdX3x97z38/nKEQQyvBv9k=|ZTzOP8JPfk+kAOQzbnVA9GVmCCs= ecdsa-sha2-nistp256 A...
|1|TNRQAp+HHSztEPGOlckiWCJFxQ8=|+XkgfL/fd/v4cHMgmB47dQiHTgU= ecdsa-sha2-nistp256 AA...
为了试验分别连接了两台设备,果然是自己的私钥 +已加入信任的公钥集合。
file_content:know_hosts.pub 存放了自己的公钥
ssh-rsa AAAAB3NzaC1yc2....p hicode@test
相同能够測试一下。发现带有已连接server公钥文件的know_hosts文件修改了两次,而自己的公钥文件一直没有修改。
hicode@test:~/.ssh$ ls -lh known_hosts*
-rw-r--r-- 1 hicode hicode 2.1K Jul 1 05:26 known_hosts
-rw-r--r-- 1 hicode hicode 393 Jun 23 16:16 known_hosts.pub
hicode@test:~/.ssh$ date
Wed Jul 1 05:58:58 CST 2015
免password登陆的过程:
免password登陆是说,server相信就是真实的客户机。
那么肯定server上要有关于真实的定义,这里的真实是指server上存放了关于客户机的公钥(server上肯定不会存放人家的私钥)。仅仅要验证对方的公钥和server上的一致就可以。
步骤例如以下:
- server发送字符串str(应该是未加密明文吧)给客户机。
- 客户机将str用自己的私钥加密后的结果发送给server。
- server用待验证的客户机公钥解密后发现一致。
说明白实是对方。通过。
以上步骤的实现,须要用户事先将自己的公钥发送给server留作记录。网上有ssh-keygen 方式生成后传给server的,非常easy。
可是。我不明白的是know_host.pub 中的公钥不是已经存在了嘛,为什么还要必须生成另外一个公钥id_rsa.pub 呢。
。莫非免登陆的时候。协议中规定用的不是know_hosts.pub 中的公钥?
最后附上另外一篇阮老师的文章。非常清楚的讲了ssh登陆 过程,就是没有解答我的困惑。
SSH原理与运用(一):远程登录
ssh远程登录报错REMOTE HOST IDENTIFICATION HAS CHANGED!解决方式及原因的更多相关文章
- SSH不能连接并提示REMOTE HOST IDENTIFICATION HAS CHANGED解决
SSH不能连接并提示REMOTE HOST IDENTIFICATION HAS CHANGED解决方法: 如果提示信息如下: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...
- 虚拟机使用scp传输文件提示“WARNING REMOTE HOST IDENTIFICATION HAS CHANGED”解决方式
虚拟机使用scp传输文件提示"WARNING REMOTE HOST IDENTIFICATION HAS CHANGED"解决方式 简单的说就是虚拟机里保存的认证密钥不正确了,需 ...
- linux之 ssh连接服务器,WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
[root@zk01 ~]# ssh localhost@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: RE ...
- SSH小问题:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HA ...
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决方法
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION ...
- 树莓派ssh报错:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决
初次使用树莓派,在使用树莓派本机网卡时被DHCP服务器分配到192.168.0.103,连接正常.于是乎很开心的将无线网卡插入树莓派,急于摆脱网线的束缚. ifconfig一下获取无线网卡的MAC地址 ...
- CentOs7:ssh远程登录错误WARNING:REMOTE HOST IDENTIFICATION HAS CHANGED解决简单办法
错误及解决办法如下图所示. 第一步:cd ~/.ssh 第二步:vi known_hosts 第三步:删除与访问ip相关条目 附参考链接: https://www.cnblogs.com/york-h ...
- SSH不能连接并提示REMOTE HOST IDENTIFICATION HAS CHANGED
ssh连接报错: 解决: vi /root/.ssh/known_hosts 找到要连接的主机的ip,把它的那行所有信息删除(就是一行)
- Linux REMOTE HOST IDENTIFICATION HAS CHANGED错误解决方法
http://linuxme.blog.51cto.com/1850814/375752 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决 ...
随机推荐
- [WPF]使用Pack URI路径訪问二进制资源
一.路径格式定义 完整的URI定义为: pack://application,,,[/可选程序集名称;][可选版本;][目录名称/]文件名 缩略后的写法是: [目录名称/]文件名 二.在XAML代码中 ...
- 抽出SqlHelper
什么叫SqlHelper,通过简单的翻译,能够获得这是对Sql的帮助,那么它究竟对我们的Sql做出了什么样的帮助呢? 在一款软件的设计编程中,总是会对数据库有连接的.假设你用的是SqlServer的数 ...
- 2014年辛星解读Javascript之用DOM动态操纵HTML元�
关于DOM,我们了解了能够用DOM操纵HTML的一些属性和样式,还能够为HTML元素绑定事件等等,那么接下来,我们将涉及到用DOM来动态的创建.删除HTML等一些操作,我的核心思路还是重实战,因此,代 ...
- Learning Cocos2d-x for WP8(1)——创建首个项目
原文:Learning Cocos2d-x for WP8(1)--创建首个项目 Cocos2d-x for WP8开发语言是C++,系列文章将参考兄弟篇Learning Cocos2d-x for ...
- 数据库采用多表连接查询,对应javaBean文件连接方式
在一个Web项目中,只要是存在数据库就一定会有JavaBean文件.一个JavaBean文件会对应一张数据库中的表,供dao中的代码来调用用来存取数据.我们都知道,在数据库设计的时候,如果A.B两张表 ...
- UIApplicationsharedApplication的常用使用方法
下面是这个类的一些功能: 1.设置icon上的数字图标 //设置主界面icon上的数字图标,在2.0中引进, 缺省为0 [UIApplicationsharedApplication].applica ...
- 二叉树的建立与遍历(山东理工OJ)
题目描写叙述 已知一个按先序序列输入的字符序列,如abc,,de,g,,f,,,(当中逗号表示空节点).请建立二叉树并按中序和后序方式遍历二叉树,最后求出叶子节点个数和二叉树深度. 输入 输入一个长度 ...
- 树上点对统计poj1741(树的点分治)
给定一棵树,边上有权值,要统计有多少对点路径的权值和<=k 分治算法在树的路径中的应用 这个论文里面有分析. 任意两点的路径,要么过根结点,要么在子树中.如果在子树中,那么只要递归处理就行了. ...
- Preview of Spring-framework :Spring框架的预习和自我整理
Spring简介 - 预习的自我整理 1. What's Spring? Spring是一个从实际开发中抽取出来的框架,完成了大量开发中的通用步骤,留给开发者仅仅是与特定应用相关的部分,从而提高了企业 ...
- Android build-tools升级到23.0.0_rc1无法解决编译后的问题
背景 作为项目要改变android studio,它采取了.他们主动向我,结果下载了最新的build-tools 23.0.0_rc1,然后,当我再次使用eclipse不了了.git reset了n次 ...