Ssh

如何在對遠端機器執行 ssh 以進行測試時創建遠端主機標識已更改的場景

  • August 27, 2019

我們想從返回的 linux 遠端機器中引起狀態

"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
"@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\r",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r", 

所以我們在本地/root/.ssh/known_host文件(beta機器)中更改遠端機器的字元之一,以便進行此模擬

但這不會發生

當我們從 beta 機器向遠端機器執行 ssh 時

ssh alpha1

我們無需獲取即可訪問遠端機器:

"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
"@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\r",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r", 

那麼如何模擬這種情況呢?

可能有辦法通過弄亂 來做到這一點~/.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,沖洗,重複。您可以根據自己的需要對其進行工具化。

引用自:https://unix.stackexchange.com/questions/537729