Known_hosts의 커스텀 포트 아래에 호스트 이름이 있는지 확인하세요.

Known_hosts의 커스텀 포트 아래에 호스트 이름이 있는지 확인하세요.

known_hosts호스트 이름이 이미 파일 에 존재하는지 확인해야 합니다 .

보통 나는 다음과 같이 할 것이다:

ssh-keygen -H -F hostname

그러나 이것은 이 특별한 경우에는 나에게 적합하지 않은 것 같습니다. 다음과 같이 포트 2102를 사용하여 호스트에 연결합니다.

ssh user@myhost -p 2102

known_hosts파일 에 호스트 이름을 추가하라는 요청을 받았고 그렇다고 답했습니다. 그 후에 나는 실행했지만 ssh-keygen -H -F myhost빈 결과를 받았습니다.

더 나쁜 것은 해시 known_hosts되어 있다는 것입니다.

이는 포트 22에서 완벽하게 작동하므로 로그인하여 ssh user@myotherhost알려진 호스트를 저장하고 실행하면 ssh-keygen -H -F myotherhost파일에서 정확한 행을 받게 됩니다.

그렇다면 포트 2102를 사용하도록 명령을 어떻게 조정합니까?

답변1

[hostname]:2121파일에 저장되므로 다음 형식을 사용할 수 있습니다 known_hosts(대괄호를 사용해야 합니다!).

ssh-keygen -H -F "[hostname]:2121"

개념 증명(최소 테스트 사례 기록):

$ echo "[hostname]:2121 ssh-rsa AAA...==" > known_hosts
$ ssh-keygen -Hf known_hosts 
known_hosts updated.
Original contents retained as known_hosts.old
WARNING: known_hosts.old contains unhashed entries
Delete this file to ensure privacy of hostnames
$ ssh-keygen -H -F "[hostname]:2121" -f known_hosts
|1|R21497dX9jN052A92GSoVFbuTPM=|lRtIr6O564EaFG0SsIulNAWpcrM= ssh-rsa AAA...==

호스트 이름 대신 IP 주소를 사용해야 할 수도 있지만 일반적으로 작동합니다.

관련 정보