SSH 문제 해결
GitLab v19.5요약
SSH 키를 사용할 때 다음과 같은 문제가 발생할 수 있습니다. Go는 RSA 키를 최대 8192비트로 제한합니다. 8192비트보다 긴 키는 더 짧은 키로 교체합니다. git clone을 실행하면 git@gitlab.example.com's password:와 같이 비밀번호를 묻는 메시지가 표시될 수 있습니다.
SSH 키를 사용할 때 다음과 같은 문제가 발생할 수 있습니다.
TLS: server sent certificate containing RSA key larger than 8192 bits#
Go는 RSA 키를 최대 8192비트로 제한합니다. 키의 길이를 확인하려면:
openssl rsa -in <your-key-file> -text -noout | grep "Key:"
8192비트보다 긴 키는 더 짧은 키로 교체합니다.
git clone으로 비밀번호 프롬프트 발생#
git clone을 실행하면 git@gitlab.example.com's password:와 같이 비밀번호를 묻는 메시지가 표시될 수 있습니다.
이는 SSH 설정에 문제가 있다는 뜻입니다.
- SSH 키 쌍을 올바르게 생성했는지, 공개 SSH 키를 GitLab 프로필에 추가했는지 확인합니다.
- SSH 키 형식이 서버 OS 구성과 호환되는지 확인합니다. 예를 들어 ED25519 키 쌍은 일부 FIPS 시스템에서 작동하지 않을 수 있습니다.
ssh-agent를 사용하여 개인 SSH 키를 수동으로 등록해 봅니다.ssh -Tv git@example.com을 실행하여 연결을 디버깅해 봅니다.example.com을 GitLab URL로 바꿉니다.- Microsoft Windows에서 SSH 사용의 모든 지침을 따랐는지 확인합니다.
- GitLab SSH 소유권 및 권한을 확인했는지 확인합니다. 호스트가 여러 개이면 모든 호스트에서 권한이 올바른지 확인합니다.
Could not resolve hostname 오류#
SSH 연결을 확인할 때 다음 오류가 발생할 수 있습니다:
ssh: Could not resolve hostname gitlab.example.com: nodename nor servname provided, or not known
이 오류가 발생하면 SSH가 지정한 이름의 호스트를 찾지 못한 것입니다.
SSH가 확인하려 한 이름은 Could not resolve hostname 뒤에 오는 텍스트입니다.
그 이름을 다음 원인과 대조합니다.
| 원인 | 해결 방법 |
|---|---|
이름에 gitlab.com:alice/my-project.git처럼 리포지터리 경로가 포함되어 있습니다. 클론 URL을 명령에 복사할 때 발생합니다. |
ssh -T git@gitlab.com처럼 호스트만 사용합니다. |
| 이름의 철자가 틀렸거나 GitLab 인스턴스의 URL이 아닙니다. | 이름을 바로잡은 다음 명령을 다시 실행합니다. |
| 네트워크가 이름을 확인하지 못합니다. 이 원인은 GitLab Self-Managed 및 GitLab Dedicated에서 더 자주 발생합니다. | 인스턴스에 접근할 수 있는지 확인하고 필요한 VPN에 연결합니다. |
| 터미널에 오래된 이름 확인 캐시가 남아 있습니다. | 터미널을 다시 시작한 다음 명령을 다시 실행합니다. |
Key enrollment failed: invalid format 오류#
FIDO2 하드웨어 보안 키에 대한 SSH 키 쌍을 생성할 때 다음 오류가 발생할 수 있습니다:
Key enrollment failed: invalid format
다음을 시도하여 이 문제를 해결할 수 있습니다:
sudo를 사용하여ssh-keygen명령을 실행합니다.- FIDO2 하드웨어 보안 키가 제공된 키 유형을 지원하는지 확인합니다.
ssh -V를 실행하여 OpenSSH 버전이 8.2 이상인지 확인합니다.
오류: Permission denied (publickey)#
Permission denied (publickey) 오류는 일반적으로 다음 문제 중 하나 이상을 나타냅니다:
- 공개 키를 추가하지 않음: 공개 키가 GitLab 계정에 추가되었는지 확인합니다. 이 문제는 새 사용자나 새 컴퓨터에서 흔히 발생합니다.
- 지원되지 않는 키 유형: 키 유형이 지원되지 않거나 GitLab이 인식하지 못하는 헤더가 포함되어 있습니다.
- 잘못된 개인 키 사용:
로컬 SSH 키가 여러 개 있으면 올바른
키를 사용하고 있는지 확인합니다. SSH는 기본적으로
~/.ssh/id_rsa또는id_ed25519를 사용합니다. 사용할 키를 지정해야 할 수 있습니다. - 개인 키에 접근할 수 없음: 로컬 장치에서 개인 키에 접근할 수 있는지 확인합니다.
- 로컬 권한이 올바르지 않음: 키에 대한 권한을 확인합니다.
개인 키는
600을,.ssh디렉터리는700을 사용해야 합니다. ssh-agent에 SSH 키가 로드되지 않음: 로컬 SSH 클라이언트에서 키를 사용할 수 있는지 확인합니다. 이 문제는 재부팅 후나 새 터미널 세션에서 흔히 발생합니다.
오류: SSH host keys are not available on this system.#
GitLab이 호스트 SSH 키에 접근할 수 없으면 gitlab.example/help/instance_configuration을 방문했을 때 SSH host key fingerprints 헤더 아래에 인스턴스 SSH 지문 대신 다음 오류 메시지가 표시됩니다:
SSH host keys are not available on this system. Please use ssh-keyscan command or contact your GitLab administrator for more information.
이 오류를 해결하려면:
- Helm 차트(Kubernetes) 배포에서는
values.yaml을 업데이트하여webservice섹션 아래의sshHostKeys.mount를true로 설정합니다. - GitLab Self-Managed 인스턴스에서는
/etc/ssh디렉터리에서 호스트 키를 확인합니다.
일반적인 SSH 문제 해결#
앞의 섹션으로 문제가 해결되지 않으면 SSH 연결을 자세한 모드로 실행합니다. 자세한 모드는 연결에 대한 유용한 정보를 반환할 수 있습니다.
SSH를 자세한 모드로 실행하려면 다음 명령을 사용하고 gitlab.example.com을
GitLab 인스턴스 URL로 바꿉니다:
ssh -Tvvv git@gitlab.example.com