테스트를 위해 원격 시스템에 SSH를 수행할 때 원격 호스트 ID가 변경된 시나리오를 만드는 방법

테스트를 위해 원격 시스템에 SSH를 수행할 때 원격 호스트 ID가 변경된 시나리오를 만드는 방법

Linux 원격 시스템에서 상태를 반환하고 싶습니다.

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

/root/.ssh/known_host그래서 우리는 이 시뮬레이션을 수행하기 위해 로컬 파일(테스트 머신)에서 원격 머신의 특성 중 하나를 변경합니다.

하지만 그런 일은 일어나지 않을 거야

베타 머신에서 원격 머신으로 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헹구고 반복하십시오. 필요에 따라 도구를 사용할 수 있습니다.

관련 정보