Gitlab не работает с ключами SSH

Gitlab не работает с ключами SSH

У меня возникли проблемы с Gitlab. Я использовал следующее руководство для установки и настройки Gitlabhttps://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 и говорилось, что имя пользователя не может использоваться для входа.

решение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

Это может произойти, если в имени хоста есть «-». (Хотя это и законно согласноRFC952.)

ssh запрашивает у меня пароль для любого хоста, в имени которого есть '-'. Похоже, это проблема исключительно с разбором файла конфигурации ssh, поскольку добавление псевдонима к ~/.ssh/config (и использование этого псевдонима в моих удаленных URL-адресах git) решило проблему.

Другими словами, попробуйте поместить что-то вроде следующего в ваш C:/Users/{имя пользователя}/.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

Связанный контент