원격 사용자가 Mac OS X에서 "전송" 클라이언트를 사용하여 처음으로 내 SFTP/SSH 서버에 연결을 시도했는데 호스트 키 지문이 예상 값과 일치하지 않는 것을 발견했습니다.
ssh-keygen -lf /etc/ssh/ssh_host_dsa_key
표시된 지문의 스크린샷을 가지고 있으며 이를 및 의 출력과 비교했는데 ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
둘 중 하나와 일치하지 않습니다.
cut -d ' ' -f 2 < /etc/ssh/ssh_host_dsa_key.pub | base64 -d | sha1sum
또한 지문을 and 의 출력과 비교하는 데 실패했습니다 cut -d ' ' -f 2 < /etc/ssh/ssh_host_rsa_key.pub | base64 -d | sha1sum
(사용 중인 지문 알고리즘이 다른 것 같기 때문인가요?).
클라이언트 측 메시지 상자의 제목은 (영어로 번역됨)입니다.
알 수 없는 호스트 키< 호스트 이름 >
그리고 상태
서버를 알 수 없습니다. 호스트 키의 지문은< 16옥텟 >. ( 허용 ) ( 거부 ) [ ] 항상
따라서 RSA 또는 DSA 키가 사용되는지, MD5 또는 일부 SHA 알고리즘이 지문 생성에 사용되는지 여부가 표시되지 않습니다.
원격 사용자에게 표시되는 지문에는 콜론으로 구분된 16개의 옥텟이 있으므로 SHA-224 또는 그 이상을 사용하지 않는 것으로 보입니다.업데이트: SHA-1 해시에도 20옥텟이 있으므로 표시된 지문은 SHA 형식이 아닌 것으로 나타났습니다.
사용자가 연결을 허용하면 내 서버 로그에서 로그인 시도를 볼 수 있기 때문에 결국 연결은 올바른 서버로 이동합니다. 따라서 클라이언트 측에서 호스트 이름/IP가 올바르게 입력된 것으로 보입니다.
완전히 관련되지 않은 다른 SFTP 서버에 연결하면 잘못된 지문도 표시됩니다(그러나 첫 번째 서버와는 다릅니다).
다른 호스트에서(또는 서버 자체에서 로컬로) OpenSSH를 사용하여 직접 서버에 연결하려고 하면 올바른 지문(RSA 호스트 키의 MD5 지문)이 표시됩니다.
서버는 표준 OpenSSH 서버와 함께 Debian 6 LTS를 실행하고 있습니다.
이 지문 불일치의 원인은 무엇입니까? 이 문제를 어떻게 디버깅할 수 있나요?
답변1
처음 연결한 경우 불일치가 있는지 여부는 중요하지 않습니다. 클라이언트에 연결된 동일한 호스트 이름 또는 IP 주소를 갖는 관련 없는 이전 항목이 있었습니다. 다음을 사용하여 지우십시오.
ssh-keygen -R $name_or_ip
그런 다음 다음에 연결할 때 RSA, ECDSA 등인지 확실히 알려주어야 합니다. 그렇지 않은 경우 Linux 표준인 OpenBSD OpenSSH 클라이언트와 같은 적절한 클라이언트를 사용하거나 -v(또는 -vvvv 등의 자세한 옵션)를 사용해 보십시오. 그런 다음 새 키를 확인하고 수락합니다. 이전 클라이언트의 주요 지문 형식은 md5(새 클라이언트의 경우 ascii-hex 대신 이상한 base64 형식의 sha256)이며 서버 측에서 지문을 가져오는 올바른 방법은 다음과 같습니다.
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
답변2
알고보니 사용중인 FTP 프로그램은 Transmit이 아니고 Cyberduck 4.5.1 이었습니다. 잘못된 지문으로 인한 문제는 이미 알려져 있었습니다.잘못된 호스트 키 지문. 최신 버전으로 업데이트하면 이 문제가 해결되었으며 이제 표시된 지문이 정확해졌습니다.