我们想要从 Linux 远程机器返回状态
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
"@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @\r",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
因此,我们更改本地文件(测试机)中远程计算机的特征之一,/root/.ssh/known_host
以便进行此模拟
但这不会发生
当我们从 beta 机器 ssh 到远程机器时
ssh alpha1
我们无需获取即可访问远程计算机:
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
"@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @\r",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
那么如何模拟这种场景呢?
答案1
可能有一些方法可以通过简单地修改 来做到这一点~/.ssh/known_hosts
,但这里有一个使用sshd
以普通用户身份运行的服务器的解决方案:
mkdir -m 700 /tmp/ssh
ssh-keygen -qN '' -f /tmp/ssh/1st
ssh-keygen -qN '' -f /tmp/ssh/2nd
/usr/sbin/sshd -h /tmp/ssh/1st -p 2222 -o PidFile=/tmp/ssh/pid
ssh -o StrictHostKeyChecking=no -p 2222 localhost true
kill $(cat /tmp/ssh/pid)
/usr/sbin/sshd -h /tmp/ssh/2nd -p 2222 -o PidFile=/tmp/ssh/pid
现在:
% ssh -p 2222 localhost true
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
然后ssh-keygen -R [localhost]:2222
,冲洗,重复。您可以根据需要将其工具化。