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/message
git 또는 ssh를 사용해 보았을 때 역할 이 없었습니다.
여기서 어디로 가야할지 모르겠습니다. 어떤 제안?
git username을 사용하는 SSH의 의미가 무엇인지 모르겠습니다. 내가 사용한 가이드는 자식 사용자의 암호를 만들지 않았으며 사용자가 로그인하는 데 사용할 수 없다고 언급했습니다.
답변
클라이언트에 개인 키를로드 한 경우 ‘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’사용자의 홈 디렉토리로 바꾸십시오. 권한이 아닌 경우 의견을 말하면 문제가 무엇인지 확인할 수 있습니다.
답변
공개 키 (웹 페이스를 통해 가져온)에 대한 레코드 /home/git/.ssh/authorized_keys
가 하나만 있고이 키에 gitlab의 접두사와 제목이 있는지 확인하십시오. 즉, gitlab을 설치하기 전에 동일한 키를 수동으로 추가 한 경우 제거하십시오.
답변
또한 사용자에게 gitlab에서 복제 / 풀 / 푸시에 대한 적절한 권한이 있는지 확인하는 것이 좋습니다. gitlab 사용자가 충분한 권한을 가지고 있지 않은 문제의 원인이 ssh / https 구성을 살펴 보는 데 너무 많은 시간을 보냈습니다 …
답변
내 상황에서 FreeBSD 패키지를 통해 gitlab을 설치했습니다. Gitlab SSH가 작동하지 않았습니다. 이것의 원인은 git의 잘못된 홈 디렉토리였습니다. (vipw)
git:*:211:211::0:0:gitosis user:/usr/local/git:/bin/sh
나는 이것을 다음으로 변경했다.
git:*:211:211::0:0:gitosis user:/home/git:/bin/sh
답변
호스트 이름에 ‘-‘가있는 경우 발생할 수 있습니다. (이것은 RFC 952 에 따라 합법적이지만 )
ssh는 이름에 ‘-‘가있는 호스트의 암호를 묻는 메시지를 표시합니다. ~ / .ssh / config에 별칭을 추가하고 내 자식 원격 URL에서 해당 별칭을 사용하여 문제를 해결했기 때문에 이것은 ssh 구성 파일 구문 분석의 문제 인 것 같습니다.
즉, C : / Users / {username} /. ssh / config에 다음과 같은 것을 입력하십시오.
Host {a}
User git
Hostname {a-b.domain}
IdentityFile C:/Users/{username}/.ssh/id_rsa
그리고 당신이 형태의 리모컨이있는 곳
origin git@a-b.domain:repo-name.git
제거한 다음 양식을 사용하여 다시 추가하십시오.
origin git@a:repo-name.git
답변
환경 변수를 사용하여 키를 전달하는 경우 base64로 인코딩해야합니다. 그렇지 않으면 암호를 묻는 오류와 함께 실패 할 수 있습니다. 이는 키가 손상되었음을 의미합니다. 당신이 볼 경우:
$ ssh-add <(echo "$SSH_PRIVATE_KEY")
Enter passphrase for /dev/fd/63: ERROR: Job failed: exit code 1
그런 다음 SSH_PRIVATE_KEY 변수를 base64로 인코딩하십시오. OS X를 사용하는 경우
cat ~/.ssh/ssh_key_for_project | base64 | pbcopy
인코딩하고 클립 보드에 복사합니다. 그런 다음 .gitlab-ci.yml 스크립트 줄을
- ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 -d)
답변
실행 중 eval $(ssh-agent)
문제가 해결되었습니다.