ssh-keyscan은 SSH의 ProxyCommand 옵션을 받지 않습니다. 따라서 ssh용으로 구성한 프록시가 별도의 스캐너를 자동으로 구성하지는 않습니다.

한 가지 방법은 이미 연결된 로컬 TCP 릴레이를 쓰는 것입니다. 이 릴레이는 필요한 프록시 인증과 CONNECT 교환을 마친 뒤 대상 SSH 서버의 바이트 스트림을 노출합니다. 그 릴레이가 127.0.0.1:2222에서 수신한다면:

ssh-keyscan -p 2222 127.0.0.1 > candidate.keys
ssh-keygen -lf candidate.keys

첫 번째 명령은 후보 키를 모으고, 두 번째는 그 지문을 표시합니다. 릴레이는 HTTP 헤더를 스캐너에 넘기는 대신 프록시 응답을 끝까지 소비한 뒤 SSH 스트림을 통과시켜야 합니다.

출력의 호스트 레이블은 로컬 릴레이 엔드포인트를 나타냅니다. 그대로 덧붙여 이제 원격 SFTP 호스트 이름을 가리킨다고 가정하지 마십시오.

키를 known_hosts의 실제 호스트와 포트에 연결하기 전에 신뢰할 수 있는 기록이나 관리자를 통해 지문을 검증하십시오. ssh-keyscan은 접근 가능한 엔드포인트가 제시하는 것만 수집하며, 프록시 연결 성공이 그 키를 인증하지는 않습니다.

관련 글