Skip to main content

HTTPS 포트를 통해 SSH 사용

경우에 따라 방화벽은 SSH 연결을 완전히 허용하지 않습니다. 자격 증명 캐싱과 함께 HTTPS 복제를 사용할 수 없는 경우 HTTPS 포트를 통해 만들어진 SSH 연결을 사용하여 복제를 시도할 수 있습니다. 대부분의 방화벽 규칙은 이를 허용해야 하지만 프록시 서버가 방해할 수 있습니다.

GitHub Enterprise Server 사용자: 현재 HTTPS 포트를 통해 SSH를 사용하여 GitHub Enterprise Server에 액세스할 수는 없습니다.

HTTPS 포트를 통한 SSH가 가능한지 테스트하려면 다음 SSH 명령을 실행합니다.

$ ssh -T -p 443 git@ssh.github.com
# Hi USERNAME! You've successfully authenticated, but GitHub does not
# provide shell access.

성공했다면 다행입니다. 실패한 경우 문제 해결 가이드에 따라야 할 수 있습니다.

Note

포트 443의 호스트 이름은 github.com이 아니라, ssh.github.com입니다.

이 문서에는 github.com 도메인을 사용하는 명령이나 예제가 포함되어 있습니다. octocorp.ghe.com와(과) 같은 다른 도메인에서 GitHub에 액세스할 수 있습니다.

이제 다음 명령을 실행하여 리포지토리를 복제할 수 있습니다.

git clone ssh://git@ssh.github.com:443/YOUR-USERNAME/YOUR-REPOSITORY.git

HTTPS를 통해 SSH 연결 사용

포트 443을 통해 git@ssh.github.com에 SSH할 수 있는 경우 GitHub.com에 대한 모든 연결이 해당 서버와 포트를 통해 실행되도록 SSH 설정을 재정의할 수 있습니다.

SSH 구성 파일에서 이렇게 설정하려면 ~/.ssh/config에 있는 파일을 편집하여 다음 섹션을 추가합니다.

Host github.com
    Hostname ssh.github.com
    Port 443
    User git

GitHub.com에 한 번 더 연결하여 제대로 작동하는지 테스트할 수 있습니다.

$ ssh -T git@github.com
# Hi USERNAME! You've successfully authenticated, but GitHub does not
# provide shell access.

알려진 호스트 업데이트

포트 443으로 전환한 후 GitHub과(와) 처음으로 상호 작용할 때 known_hosts에서 호스트를 찾을 수 없거나 다른 이름으로 검색되었다는 경고 메시지가 표시될 수 있습니다.

# The authenticity of host '[ssh.github.com]:443 ([140.82.112.36]:443)' can't be established.
# ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
# This host key is known by the following other names/addresses:
#     ~/.ssh/known_hosts:32: github.com
# Are you sure you want to continue connecting (yes/no/[fingerprint])?

SSH 지문이 GitHub의 게시된 지문 중 하나와 일치한다고 가정하면 이 질문에 "예"라고 대답하는 것이 안전합니다. 지문 목록은 "GitHub의 SSH 키 지문"을(를) 참조하세요.