ssh-keyscan에 출력이 없습니다

ssh-keyscan에 출력이 없습니다

github 저장소를 자동으로 다운로드하고 설치하는 서버 스크립트가 있습니다. 스크립트의 일부로 ssh-keyscan -H github.com >> ~/.ssh/known_hosts저장소를 체크아웃하기 전에 github의 RSA 키를 자동으로 수락하기 위해 git 사용자로 실행하고 있습니다.

나는 로컬 vagrant 인스턴스와 여러 서버에서 동일한 스크립트를 성공적으로 사용했습니다. 그러나 서버 중 하나에서는 ssh-keyscan -H github.com출력이 반환되지 않으므로 이 작업이 작동하지 않습니다(git 사용자, 내 개인 사용자 및 루트로 이것을 시도했으며 명령은 동일하게 작동합니다). github.com에 ping을 실행할 수 있으므로 연결 문제는 아닙니다. 동일한 네트워크의 다른 서버에서 ssh-keyscan을 성공적으로 실행할 수도 있습니다. 이것이 문제인지 확인하기 위해 SSH를 업그레이드하려고 시도했지만 이미 내 배포판(CentOS 7)의 최신 버전입니다.

이 문제를 해결하기 위한 가장 좋은 시작점은 어디입니까? "ssh-keyscan"과 관련된 질문을 찾기 위해 StackExchange를 검색해 보았으나 이 특정 문제와 관련된 내용을 찾지 못했습니다.

답변1

저도 같은 문제가 있었는데(출력이 제공되지 않음) 기본 제한 시간(5초)이 너무 짧기 때문이었습니다. 나는 -T 플래그를 사용하여 이 문제를 해결했습니다. 이를 통해 사용자 정의 시간 제한을 초 단위로 설정할 수 있습니다. 240초 시간 초과 및 임의 IP 주소를 사용한 예시:

ssh-keyscan -T 240 52.213.86.118

답변2

ssh-keyscan -p <PORT> <IP>SSH 서버가 기본 포트에서 실행되고 있지 않으면 다음을 실행해 보세요.

답변3

이것은 나에게 네트워크 문제처럼 들립니다.

내가 한 첫 번째 일은 다음과 같이 포트 22를 통해 다양한 SSH 서버에 텔넷을 시도하는 것이었습니다.

$ telnet local-git-server 22

다음은:

$ telnet github.com 22

이 명령을 실행하면 다음과 유사한 출력이 표시됩니다.

Escape character is '^]'. SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2

이는 좋은 표시이며 ssh방화벽 제한 없이 허용될 수 있습니다.

  • 최종 결과는 무엇입니까 ssh-keyscan?
  • 있다면 무엇을 인쇄합니까?
  • 텔넷이 몇 초 동안 중단됩니까? 연결 거부 또는 연결 거부 응답을 받고 있습니까?
  • 실행하면 netstat -an --tcpSYN_SENT 상태의 여러 TCP 항목이 표시됩니까? 그렇다면 네트워크 계층에서 차단이 있음을 나타냅니다.

답변4

달리는 동안 비슷한 문제가 발생했습니다 ssh-keyscan github.com. 시간 초과를 늘리기 위해 사용자 정의 플래그를 추가하려고 시도했지만 -T출력이 없습니다. 그래서 문제를 디버깅하기 위해 ssh -vvv github.com포트 22에서 github.com에 연결했습니다. 일부 디버깅 정보를 제공 -vvv하고 최종 명령은 Operation timed out. 포트 22가 활성화되어 있는지 ISP 공급자에게 문의할 수 있습니다. 제 경우에는 제3자 소프트웨어(Teamviewer)로 인해 발생했습니다. 제거하면 문제가 해결되었습니다. 이것은 나에게 도움이 된 해결책이지만 귀하의 경우에는 다른 문제가 있을 수 있습니다.

관련 정보