localhost에서 SSH 호스트 키 "known_hosts" 값을 얻는 방법은 무엇입니까?

localhost에서 SSH 호스트 키 "known_hosts" 값을 얻는 방법은 무엇입니까?

ssh-keyscan -H externalIpExamplelocalhost에서 직접 이 값을 생성하려면 어떻게 해야 합니까 (네트워크 액세스가 필요하지 않습니까?)

하나의 특정 호스트에 두 개의 공개 키가 있습니다. /etc/ssh둘 다 작동합니까?

ls /etc/ssh/*.pub
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key.pub

답변1

내가 올바르게 이해하고 귀하가 포트 22에서 수신한다고 가정하면 ssh다음 localhost과 같습니다.

awk '{print "[localhost]:22 " $1 " " $2}' /etc/ssh/ssh_host_ecdsa_key.pub

항목 known_hosts이 인쇄됩니다. 일부 SSH 구현은 의 항목을 난독화 ~/.ssh/known_hosts하지만 위 명령은 그렇지 않습니다.

# awk '{print "[localhost]:22 " $1 " " $2}' /etc/ssh/ssh_host_ecdsa_key.pub
[localhost]:22 ecdsa-sha2-nistp256 AAAAE2............g7vPmspiyg=

답변2

이 질문은 약간 모호하지만 이미 쉘 액세스 권한이 있는 시스템에서 ssh 호스트 공개 키를 검색하려는 경우(본과 유사한 쉘을 사용한다고 가정) 일반적으로 다음과 같은 것이 유용합니다. :

ssh-keyscan `hostname -f` -H

...그러나 사용 사례와 호스트 참조 방법에 따라 hostname특정 IP 주소를 바꾸거나 사용하는 것이 더 나을 수도 있습니다 hostname -f.

대신 이전에 기록된 호스트 키 항목을 Known_hosts 파일에서 찾으려면 다음과 같은 방법을 사용할 수 있습니다.

ssh-keygen -F name.or.ip.address.of.remote.host -f  ~/.ssh/known_hosts

관련 정보