Gitlab이 SSH 키와 작동하지 않습니다

Gitlab이 SSH 키와 작동하지 않습니다

Gitlab에 문제가 있습니다. 다음 가이드를 사용하여 Gitlab을 설치하고 구성했습니다.https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md. 설치가 잘 된 것 같았습니다. 웹 애플리케이션이 제대로 작동하는 것 같습니다. 그러나 복제, 당기기, 푸시를 할 수 없습니다. 기본적으로 Gitlab을 사용할 수 없습니다. SSH를 통해 복제하려고 할 때 HTTP에서 403 오류가 발생하고 권한이 거부되었습니다.

내 개인 키가 Windows와 OS X 모두에서 올바르게 설정되었는지 확인했습니다. 서버에서 공개 키를 볼 수 있습니다. ~/.ssh.config의 구성 파일에 다음을 추가했습니다.

Host {hostname}
    User git
    Hostname {hostname}
    PreferredAuthentications publickey
    IdentityFile C:/Users/{username}/.ssh/id_rsa

이것이 /var/log/secure에 표시된 내용입니다.

Jan 14 17:31:48 dev_version_control sshd[3696]: Connection closed by 192.168.17.113
Jan 14 17:32:18 dev_version_control sshd[3700]: Connection closed by 192.168.17.113

/var/log/messagegit 또는 ssh를 사용하려고 시도했을 때 역할이 수행되지 않았습니다 .

여기서 어디로 가야할지 모르겠습니다. 어떤 제안이 있으십니까?

git 사용자 이름을 사용하여 SSH가 무엇을 의미하는지 모르겠습니다. 내가 사용한 가이드에는 git 사용자의 비밀번호를 생성하지 않았으며 사용자를 로그인하는 데 사용할 수 없다고 명시되어 있었습니다.

답변1

클라이언트에 개인 키를 로드했다면 이는 'git' 사용자 홈 디렉터리 및 .ssh 디렉터리에 대한 권한 문제일 수 있는 것처럼 들립니다.

/home/git 디렉토리를 마스크 0711로 변경해 보십시오:

chmod 0711 /home/git

/home/git/.ssh 디렉토리의 마스크가 0700인지 확인하십시오.

chmod 0700 /home/git/.ssh

/home/git/.ssh/authorized_keys 파일의 마스크가 0600인지 확인하세요.

chmod 0600 /home/git/.ssh/authorized_keys

/home/git을 튜토리얼에서 다르게 설정했다면 'git' 사용자의 홈 디렉토리로 바꾸세요. 권한이 아닌 경우 의견을 남겨주시면 문제가 될 수 있는 다른 것이 무엇인지 살펴보겠습니다.

답변2

공개 키(웹 페이스를 통해 가져온)에 대한 레코드가 하나만 있고 /home/git/.ssh/authorized_keys이 키에 gitlab의 접두사와 제목이 있는지 확인하세요. 즉, gitlab을 설치하기 전에 동일한 키를 수동으로 추가한 경우 해당 키를 제거하십시오.

답변3

또한 사용자에게 gitlab에서 복제/풀/푸시할 수 있는 적절한 권한이 있는지 확인하는 것이 좋습니다. ssh/https 구성을 살펴보는 데 너무 많은 시간을 보냈는데, 문제의 원인은 gitlab의 사용자에게 충분한 권한이 없기 때문입니다...

답변4

호스트 이름에 '-'가 있는 경우 이런 일이 발생할 수 있습니다. (이것은 법률에 따라 합법적이지만RFC 952.)

ssh는 이름에 '-'가 있는 호스트의 비밀번호를 묻는 메시지를 표시합니다. ~/.ssh/config에 별칭을 추가하고 내 git 원격 URL에서 해당 별칭을 사용하여 문제를 해결했기 때문에 이는 순전히 ssh 구성 파일 구문 분석에 문제가 있는 것 같습니다.

즉, C:/Users/{username}/.ssh/config에 다음과 같은 내용을 넣어보십시오.

Host {a}
    User git
    Hostname {a-b.domain}
    IdentityFile C:/Users/{username}/.ssh/id_rsa

그리고 당신이 양식의 리모컨을 가지고 있는 곳

origin  [email protected]:repo-name.git

제거한 다음 양식을 사용하여 다시 추가하십시오.

origin  git@a:repo-name.git

관련 정보