好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题

本文介绍了当目标服务器IP地址更改后,通过SSH连接时出现的验证问题及解决方法。包括禁用严格主机密钥检查及移除已知主机列表中的旧密钥。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用ssh登录一个机器(换过ip地址),提示输入yes后,屏幕不断出现y,只有按ctrl + c结束

 

错误是:The authenticity of host 192.168.0.xxx can't be established.

 

以前和同事碰到过这个问题,解决了,没有记录,这次又碰到了不知道怎么处理,还好有QQ聊天记录,查找到一下,找到解决方案:

 

执行ssh  -o StrictHostKeyChecking=no  192.168.0.xxx 就OK

 

网址是:

 

http://blog.ossxp.com/2010/04/1026/

 

记一下,防止又忘记了,又快到3点了,无数个不眠之夜啊。

 

 

2011/10/11

某天机器又改IP了,ssh后,报:

mmt@FS01:~$ ssh  -o StrictHostKeyChecking=no  192.168.0.130
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 is
fe:d6:f8:59:03:a5:de:e8:29:ef:3b:26:6e:3d:1d:4b.
Please contact your system administrator.
Add correct host key in /home/mmt/.ssh/known_hosts to get rid of this message.
Offending key in /home/mmt/.ssh/known_hosts:38
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
Permission denied (publickey,password).

 注意这句

Add correct host key in /home/mmt/.ssh/known_hosts to get rid of this message.

执行:

mv  /home/mmt/.ssh/known_hosts known_hosts.bak

再连:

ssh  -o StrictHostKeyChecking=no  192.168.0.130


OK了!

<think>好的,用户遇到了SSH连接时主机身份验证的问题,具体是关于192.168.123.18的主机身份验证。我需要帮他解决这个问题。首先,我得回想一下常见的SSH主机验证问题通常是什么情况。 用户可能是在第一次连接这个IP的时候,SSH客户端提示主机密钥不匹配或者未知的主机,导致连接被拒绝。这种情况通常发生在目标主机的密钥发生了变化,比如重装系统、更换SSH密钥,或者可能中间人攻击。但大多数情况下,尤其是内网环境,更可能是密钥变更导致的。 首先,常见的解决方法是清除旧的known_hosts条目。用户需要找到.ssh/known_hosts文件,然后删除对应192.168.123.18的记录。或者使用ssh-keygen命令来移除特定条目,比如ssh-keygen -R 192.168.123.18。这一步可以解决因为密钥变更导致的验证失败。 另外,用户可能需要暂时关闭严格的主机密钥检查。不过这个方法不太安全,只能作为临时解决方案。比如在连接时加上-o StrictHostKeyChecking=no,但需要提醒用户注意安全风险,尤其是在不可信的网络环境中。 还有,用户可能需要检查目标主机的SSH密钥是否真的发生了变化。如果是预期的变更,比如服务器迁移,那更新known_hosts是合理的。否则,可能存在安全风险,需要进一步确认。 此外,用户的问题可能与IP地址重复有关。比如,同一个局域网内有不同的机器使用了相同的IP,导致known_hosts中的记录冲突。这时候需要用户确认目标主机的身份,或者检查网络配置。 在回答时,我需要分步骤给出解决方法,同时提醒用户注意安全性。引用中的内容提到了SSH端口更改的情况,但用户的问题是关于主机验证,可能相关的引用是引用[1],其中提到修改SSH端口需要在hadoop-env.sh中指定,但用户的问题可能不涉及端口,所以可能不需要直接引用。不过,可能需要检查SSH配置是否有其他问题,比如端口是否正确,但用户的问题更聚焦于主机验证,所以主要针对known_hosts处理。 另外,用户可能需要了解如何手动验证主机密钥。比如,获取目标主机的新指纹,并手动添加到known_hosts文件中。这部分可以作为步骤中的一部分,比如联系服务器管理员获取正确的指纹,然后进行添加。 最后,生成相关问题的时候,需要考虑用户可能进一步的问题,比如如何彻底禁用主机密钥检查(虽然不推荐),或者如何生成新的SSH密钥对,或者如何检查SSH连接的其他问题,比如端口不通或者防火墙设置。</think>### 解决SSH主机身份验证问题的步骤 当SSH客户端提示主机身份验证失败时(例如`WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!`),通常是由于目标服务器的SSH密钥发生变化或本地记录的密钥不匹配导致。以下是具体解决方法: --- #### **方法1:清除旧的主机密钥记录** 1. **删除已知主机条目** 打开终端,执行以下命令清除目标IP(192.168.123.18)的旧记录: ```bash ssh-keygen -R 192.168.123.18 ``` 此操作会更新`~/.ssh/known_hosts`文件,移除冲突条目[^1]。 2. **重新连接并接受新密钥** 再次尝试SSH连接,系统会提示接受新密钥: ```bash ssh username@192.168.123.18 ``` 输入`yes`确认后,新密钥将存入本地。 --- #### **方法2:临时关闭严格密钥检查(仅限可信环境)** 若需快速连接且环境可信,可临时禁用严格验证: ```bash ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null username@192.168.123.18 ``` ⚠️ **注意**:此方法存在安全风险,仅建议用于临时测试或内部可信网络。 --- #### **方法3:手动验证并更新密钥** 1. **获取目标服务器的新指纹** 通过可信渠道(如物理访问或控制台)登录目标服务器,执行: ```bash ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub ``` 记录显示的SHA256指纹。 2. **手动添加到本地`known_hosts`** 将指纹按格式添加到`~/.ssh/known_hosts`: ``` 192.168.123.18 ecdsa-sha2-nistp256 AAAAB3NzaC1yc2EAAA...(指纹内容) ``` --- #### **方法4:检查网络配置与IP冲突** - 确认目标IP未被其他设备占用。 - 若服务器SSH端口已更改(如引用[1]中非默认端口场景),需在连接时指定端口: ```bash ssh -p <自定义端口号> username@192.168.123.18 ``` --- ### 相关问题 1. 如何为SSH连接配置免密登录? 2. SSH连接超时或拒绝的可能原因有哪些? 3. 如何为多台服务器统一管理SSH密钥?
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值