我重新安装了我的服务器,我收到这些消息:

[user@hostname ~]$ ssh root@pong
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 RSA key sent by the remote host is
6e:45:f9:a8:af:38:3d:a1:a5:c7:76:1d:02:f8:77:00.
Please contact your system administrator.
Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message.
Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
RSA host key for pong has changed and you have requested strict checking.
Host key verification failed.

我尝试了在网上找到的各种解决方案。我的known_hosts文件(通常在~/.ssh/known_hosts中)在/var/lib/ss /pubconf/known_hosts中。我试图编辑它,但它仍然是一个状态。我已经安装了ipa-client和Fedora 19。如何解决此警告?

到目前为止回答的所有答案都只适用于没有安装Freeipa的情况。

下面adrin的评论中关于freeipa的正确答案在这里。


当您重新安装服务器时,它的标识发生了变化,您将开始收到这条消息。Ssh无法知道您是否更改了它所连接的服务器,或者在您的网络中添加了一个中间服务器来嗅探您的所有通信—所以它会提醒您注意这一点。

通过删除相关条目,简单地从known_hosts中删除键:

sed '4d' -i /var/lib/sss/pubconf/known_hosts

4d是关于违规RSA…known_hosts:4的账号

我有同样的错误发生后,我重新创建一个数字海洋Ubuntu映像。我使用以下命令,用我的服务器IP代替[IP_ADDRESS]

ssh-keygen -R [IP_ADDRESS]

这里有一个最简单的解决方案:

ssh-keygen -R <host>

例如,

ssh-keygen -R 192.168.3.10

从ssh-keygen手册页:

-R hostname从known_hosts文件中删除属于hostname的所有密钥。此选项用于删除散列主机(请参阅上面的-H选项)。

Use

ssh-keygen -R [hostname]

带有ip地址/主机名的示例如下:

ssh-keygen -R 168.9.9.2

这将从known_hosts更新您的主机的违规信息。您还可以使用-f标志提供known_hosts的路径。

我使用了mockinterface的解决方案,尽管sed -i并没有很好地工作 我用vim手动删除了这行:

sudo vim /var/lib/sss/pubconf/known_hosts

您可以使用任何其他您想要的文本编辑器,但可能需要显示您的管理权限

我有这个问题,原因很简单,我有一个重复的IP地址ssh登录,所以修改这个问题后,一切都解决了。

这里的其他答案都很好,不管怎样,我通过删除~/.ssh/known_hosts解决了这个问题。这当然可以解决问题,但可能不是最好的方法。

解决方案:

1-删除$HOME/。Ssh /known_hosts”指的是不可能连接到的主机。

2-执行以下命令:ssh-keygen - r "IP_ADDRESSorHOSTNAME"(将"IP_ADDRESSorHOSTNAME"替换为目标ip或目标主机名)

3-重试ssh连接(如果失败请检查。ssh目录的权限,它必须是700)

对我有用!

错误:错误的RSA密钥在/var/lib/ss /pubconf/known_hosts:4

这表明您在行号处有一个违规的RSA密钥。4

解决方案1:

1. vi /var/lib/sss/pubconf/known_hosts 2. 删除行号:4。 3.保存并退出,然后重试。

解决方案2:

ssh-keygen -R "你的服务器主机名或ip"

OR

解决方案3:

Sed -i '4d' /root/.ssh/known_hosts

这将删除/root/的第4行。Ssh /known_hosts in place(-i)。

The problem is that you've previously accepted an SSH connection to a remote computer and that remote computer's digital fingerprint or SHA256 hash key has changed since you last connected. Thus when you try to SSH again or use github to pull code, which also uses SSH, you get an error. Why? Because you're using the same remote computer address as before but the remote computer is responding with a different fingerprint. Therefore, it's possible that someone is spoofing the computer you previously connected to. This is a security issue.

如果你100%确定远程计算机没有被入侵、被黑客攻击、被欺骗等,那么你所需要做的就是删除远程计算机的known_hosts文件中的条目。这将解决问题,因为连接时将不再与SHA256指纹id不匹配。

在Mac上,我是这么做的:

1)找到输出行为servername读取RSA主机密钥:端口已更改,您已要求严格检查。您需要日志输出中的服务器名和端口。

2)备份SSH已知主机文件“cp /Users/yourmacusername/”。ssh / / yourmacusername / . ssh / known_hosts /用户known_hosts.bak

3)找到存储计算机旧指纹的行,并删除它。您可以使用步骤1中的服务器名和端口搜索特定的违规远程计算机指纹。纳米/用户/ yourmacusername / . ssh / known_hosts

4)按CTRL-X退出,选择Y保存修改

现在输入ssh -p port servername,您将收到您第一次尝试ssh到该计算机时所做的原始提示。然后,您可以选择将远程计算机更新的SHA256指纹保存到known_hosts文件中。如果您正在使用端口22上的SSH,那么-p参数是不必要的。

cp /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts.bak

在我的机器中也有同样的错误,我清除了known_hosts文件,在那之后,它工作正常。

正如许多人已经说过的,使用ssh-keygen,即。

ssh-keygen -R pong

另外,你可以考虑暂时关闭主机按键检查:

ssh -oStrictHostKeyChecking=no root@pong

只有客户端问题(ip密钥重复):

解决变量:

对于clear one ip(默认端口22):

ssh-keygen -f -R 7.7.7.7

对于单个ip(非默认端口):

ssh-keygen -f -R 7.7.7.7:333

快速清除所有ip:

cd ~; rm .ssh/known_hosts

7.7.7.7 - SSH您的服务器IP连接

333 -非标准端口

这是因为您的远程计算机设置已更改。为此删除当前的键。

vim /root/.ssh/known_hosts

删除正在连接的IP所在的线路。

大锤将一举移除所有已知宿主:

rm ~/.ssh/known_hosts

在蒙特利

sudo rm /var/root/.ssh/known_hosts

我遇到过这种情况,因为我们使用来自跳转框的短寿命服务器的小子网,并且经常有共享相同ssh密钥的服务器的内部IP地址重用。

在我的情况下,发生这种情况是因为我以前与一台具有相同ip(例如192.152.51.10)的机器进行ssh连接,系统正在考虑之前主机的RSA密钥(存储在/home/user_name/.ssh/known_hosts),这导致不匹配。

要解决此问题,必须删除之前存储的ip 192.152.51.10的RSA密钥。

ssh-keygen -f "/home/user_name/.ssh/known_hosts" -R 192.152.51.10

我的解决方案是:

六世~ / . ssh / known_hosts 删除包含你想要连接的ip的行。

这比删除所有known_hosts要好

从known_hosts中删除该条目,使用:

ssh-keygen -R *ip_address_or_hostname*

这将从known_hosts文件中删除有问题的IP或主机名,并尝试再次连接。

从手册页:

- r主机名 从known_hosts文件中删除属于主机名的所有密钥。此选项用于删除散列主机(请参阅-H选项) 如上图所示)。

有时,如果出于某种原因,您需要重新安装服务器,当通过ssh连接时,我们会发现您的服务器说标识已更改。 如果我们知道这不是攻击,而是我们已经恢复了系统,我们可以使用ssh-keygen从known_hosts中删除旧的标识:

ssh-keygen -R <host/ip:hostname>
root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

再次连接时,我们将要求您验证新指纹:

ssh -l user <host/ip:hostname>
The authenticity of host '<host/ip:hostname>' can't 
be established.
RSA key fingerprint is 3f:3d:a0:bb:59:24:35:6d:e5:a0:1a:3f:9c:86:81:90.
Are you sure you want to continue connecting (yes/no)? yes

编辑/home/hostname /。Ssh /known_hosts,删除4行,保存。

然后再次运行ssh root@pong,您将看到如下消息:您确定要继续连接(yes/no)吗?是的,打印出来就行了。

注意:如果你遇到一些问题,先阅读提示,它会有帮助。

我的UBUNTU (linux)解决方案:

1.你必须删除known_hosts文件中的内容,该文件位于/home/YOUR_USERNAME/.ssh/known_hosts

2.生成一个新的ssh密钥,如"ssh-keygen -t rsa -C "your.email@example.com" -b 4096"

3.复制粘贴您的新的ssh密钥到您的git存储库(在我的情况下是gitlab) ssh密钥。

这对我很管用!

只做:

cd /home/user/.Ssh / ->这里user将是您的用户名,例如/home/jon/。

然后

Gedit known_hosts &并删除其中的内容。

现在再次使用ssh,它应该可以工作。

使用该命令:

truncate -s 0 /home/SYSTEM_NAME/.ssh/known_hosts

如果你试图用这个命令连接到端口2222上运行的docker容器,你会得到错误

mian@tdowrick2~$ ssh pos@localhost -p 2222

然后要解决这个问题,在您的本地计算机上(即主机而不是容器)转到cd ~/。Ssh /然后用文本编辑器打开known_hosts文件。删除以[localhost]:2222开头的行并保存文件。现在再次尝试ssh

mian@tdowrick2~$ ssh pos@localhost -p 2222

错误将消失,但你必须这样做,每次容器重新启动。

AWS EC2。

在它给你的消息中找到ip。

run

vim /home/ec2-user/.ssh/known_hosts

使用方向键从消息中找到ip,然后单击。

dd

这将删除该行,然后运行escape

:wp

这将节省,然后你就可以开始了。

简单的一行程序解决方案,在mac上测试:

sed '/212.156.48.110/d' ~/.ssh/known_hosts > ~/.ssh/known_hosts

仅从已知主机中删除目标ssh主机IP。

其中212.156.48.110替换为目标主机IP地址。

原因:由于端口转发,目标IP已经为另一台机器所知道。在连接之前删除目标IP将解决此问题。

更新了SSH密钥,收到上述消息是正常的。

只需编辑~/。Ssh /known_hosts并按照消息指示删除第4行

Offending RSA key in /Users/isaacalves/.ssh/known_hosts:4

或者使用ssh-keygen删除无效密钥

ssh-keygen -R "you server hostname or ip"

只需清除/home/{username}/.ssh/known_hosts目录下的known_hosts即可

vi /home/{username}/.ssh/known_hosts 

删除已知主机内的每一行并退出,之后您将能够登录。

OR

执行此命令

ssh-keygen -R "hostname/ip_address" 

我在Windows 10中使用PowerShell进行ssh。 我的问题在Windows目录:C:\Users\youruser\.ssh 删除该目录中的known_hosts文件以忘记旧值。

您也可以使用文件资源管理器来定位和删除文件。

使用ssh-keygen删除无效密钥:

ssh-keygen -R "you server hostname or ip"

最终的解决方案!

由于存储的是无效的ECDSA密钥,因此显示此结果。因此,我们必须使用以下命令从我们的主/控制器机器中删除ECDSA密钥:

ssh-keygen -R 192.168.0.132

其中192.168.0.132是远程系统IP。