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 --tcp
SYN_SENT 상태의 여러 TCP 항목이 표시됩니까? 그렇다면 네트워크 계층에서 차단이 있음을 나타냅니다.
답변4
달리는 동안 비슷한 문제가 발생했습니다 ssh-keyscan github.com
. 시간 초과를 늘리기 위해 사용자 정의 플래그를 추가하려고 시도했지만 -T
출력이 없습니다. 그래서 문제를 디버깅하기 위해 ssh -vvv github.com
포트 22에서 github.com에 연결했습니다. 일부 디버깅 정보를 제공 -vvv
하고 최종 명령은 Operation timed out
. 포트 22가 활성화되어 있는지 ISP 공급자에게 문의할 수 있습니다. 제 경우에는 제3자 소프트웨어(Teamviewer)로 인해 발생했습니다. 제거하면 문제가 해결되었습니다. 이것은 나에게 도움이 된 해결책이지만 귀하의 경우에는 다른 문제가 있을 수 있습니다.