У меня проблемы с Gitlab. Я использовал следующее руководство для установки и настройки Gitlab https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md. Установка вроде прошла хорошо и все. Веб-приложение работает нормально. Однако я не могу клонировать, тянуть, толкать, в основном я не могу использовать Gitlab. Я видел 403 ошибки с HTTP и отказом в разрешении при попытке клонирования через SSH.
Я убедился, что мои закрытые ключи правильно настроены как в 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
Я не уверен, что делать дальше. Какие-либо предложения?
Я не знаю, что вы имеете в виду под SSH, используя имя пользователя git. Руководство, которое я использовал, не создавало пароль для пользователя git и заявляло, что этого пользователя нельзя использовать для входа в систему.
Если вы загрузили свой закрытый ключ на свой клиент, то это может быть проблемой с разрешениями в домашнем каталоге пользователя 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', если он был другим в руководстве. Если это не разрешения, дайте комментарий, и мы посмотрим, в чем еще может быть проблема.
Я также рекомендую проверить, есть ли у пользователя соответствующее разрешение на клонирование / извлечение / нажатие в gitlab. Я просто потратил слишком много времени на просмотр конфигураций ssh / https, когда причиной проблемы был пользователь в gitlab, не имеющий достаточных разрешений ...
Убедитесь, что у вас есть только одна запись для вашего открытого ключа (который был импортирован через веб-лицо) в /home/git/.ssh/authorized_keys
и у этого ключа есть префикс и заголовок gitlab. Другими словами, если вы добавили тот же ключ вручную перед установкой gitlab, удалите его.
В моей ситуации я установил gitlab через пакеты FreeBSD. 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, потому что добавление псевдонима к ~ / .ssh / config (и использование этого псевдонима в моих удаленных URL-адресах git) решило проблему.
Другими словами, попробуйте поместить что-то вроде следующего в свой 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
Затем base64 кодирует переменную SSH_PRIVATE_KEY. Если вы используете OS X,
cat ~/.ssh/ssh_key_for_project | base64 | pbcopy
закодирует его и скопирует в буфер обмена. Теперь измените строку сценария .gitlab-ci.yml на
- ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 -d)
Бег eval $(ssh-agent)
исправил мою проблему.
Моя проблема заключалась в том, что файл закрытых ключей id_rsa, созданный и сохраненный puttygen, имеет другой формат, чем тот, который был создан на машине ubuntu. После того, как я создал пару ключей на машине ubuntu, скопируйте эти файлы обратно на машину Windows в папку% UserProfile% .ssh, затем добавьте новый сгенерированный открытый ключ в Gitlab. Мне больше не отказано в разрешении