InfoGrab DocsInfoGrab Docs

SSH 문제 해결

요약

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

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