Ada*_*tan 202 ssh openssh hosts man-in-the-middle
在过去的几周里,我构建了几个虚拟机。问题是,这.ssh/known_hosts
给了我中间人警告。发生这种情况是因为另一个指纹与虚拟机 IP 相关联。
.ssh/known_hosts
但是,在文件中,我没有找到与 IP 相关的记录,只有两个奇怪的类似密钥的字符串和“ssh-rsa”。
有没有人对如何从中删除旧密钥有任何想法known_hosts
?
Sea*_*ats 177
最简单的解决方案是:
rm -f .ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
ssh 将再次重新创建该文件,但您会丢失对其他主机的密钥检查!
或者,您可以使用:
ssh-keygen -R "hostname"
Run Code Online (Sandbox Code Playgroud)
或者 ssh 的“中间人”消息应该指出 known_hosts 文件的哪一行具有违规指纹。编辑文件,跳转到该行并删除它。
小智 165
-R
为此有一个 ssh-keygen 开关 ( )。
man ssh-keygen
读到:
-R
主机名
hostname
从known_hosts
文件中删除属于的所有键。此选项可用于删除散列主机(请参阅-H
上面的选项)。
mik*_*ers 106
sed -i '6d' ~/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
将修改文件 ~/.ssh/known_hosts:6 ,删除第 6 行。
在我看来,使用ssh-keygen -R
对于 openssh 高级用户来说是一个更好的解决方案,而您的普通 Linux 管理员可以通过使用上述方法更好地保持他/她的 sed 技能。
小智 25
您需要运行以下命令来摆脱这个问题。打开终端并输入以下命令:
对于下面的所有示例,只需替换 之后的值-R
:
ssh-keygen -R server-name
ssh-keygen -R server.ip.addre.ss
ssh-keygen -R 202.54.1.5
ssh-keygen -R server1.example.com
Run Code Online (Sandbox Code Playgroud)
inn*_*naM 20
警告将告诉您已知主机文件中的确切行。
下面是一个例子:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for foo-bar.net has changed,
and the key for the corresponding IP address 127.0.0.1
is unchanged. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
Offending key for IP in /home/user/.ssh/known_hosts:6
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Run Code Online (Sandbox Code Playgroud)
看到/home/user/.ssh/known_hosts:6
部分了吗?它指定文件和行号。
Aru*_*ius 14
所有答案都很好,但是对于真正的 SSH 专业人士,我们缺少如何使用(非标准)端口号删除 ssh 签名的信息。
简单的 SSH 主机签名删除命令:
ssh-keygen -R example.com
Run Code Online (Sandbox Code Playgroud)
删除复杂的 ssh 密钥,例如您在非标准端口 222 上连接到 ssh:
ssh example.com -p 222
Run Code Online (Sandbox Code Playgroud)
并且您收到警告,要删除它,您需要使用方括号冒号端口号:
ssh-keygen -R [example.com]:222
Run Code Online (Sandbox Code Playgroud)
请注意,可能会有同一主机的 IP 记录,因此您还需要删除该记录。
希望这对非标准配置用户有所帮助。
您还可以使用 UserKnownHostsFile 和 StrictHostKeyChecking 标志指示 ssh 不检查 known_hosts 文件。
例如:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@example.com
Run Code Online (Sandbox Code Playgroud)
为了便于使用,您可以将其别名为:
alias boldssh='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
Run Code Online (Sandbox Code Playgroud)
现在,只要您确定信任服务器的证书,就可以使用 boldssh。
归档时间: |
|
查看次数: |
580367 次 |
最近记录: |