Назад | Перейти на главную страницу

Локальный GitLab не принимает SSH-ключ

Я проверил этот пост, но похоже, что он был написан для OSX и / или Windows, и я не совсем уверен, как применить его к моей ситуации:
GitLab не работает с SSH-ключами

Я обычно настраиваю свой экземпляр GitLab, используя Omnibus (сценарий bash, добавляемый в gitlab.sources). Я запускаю GitLab на локальном сервере. Локальный сервер использует OpenSSH, чтобы разрешить подключение с моей основной машины, и у меня есть порты 80 и 8060, открытые для моей локальной машины, с которой я подключаюсь к веб-сайту GitLab. Когда GitLab запускается, я могу войти на сайт и создать учетную запись администратора и пользователя.

Я зашел в настройки под своим пользователем и добавил открытый ключ для ключа, который я сгенерировал, и я даже перенастроил и перезапустил экземпляр GitLab, но каждый раз, когда я пытаюсь подключиться с моей локальной машины через Терминал, я получаю Permission Denied (publickey) ошибка.

Я плохо разбираюсь в конфигурациях GitLab (через gitlab.rb) или конфигурациях SSH. Единственное, о чем я могу думать, - это неправильные разрешения для файлов или каталогов, или GitLab не знает, где искать / как найти ключ, который я использую. Любая помощь приветствуется, и я буду рад предоставить любую информацию, которую я упустил!

Посмотрите ключевой файл GitLab, то есть /var/opt/gitlab/.ssh/authorized_keys, там твой ключ? Предположительно, вы можете заставить регенерацию

gitlab-rake gitlab:shell:setup

команда. Но обратите внимание, что эта функция была сломанный некоторое время назад. Они также планируют удалять этот метод вообще. Я рекомендую вам переключиться на «быстрый поиск по SSH», это действительно просто. Просто добавьте эти строки в /etc/ssh/sshd_config:

Match User git    # Apply the AuthorizedKeysCommands to the git user only
  AuthorizedKeysCommand /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-shell-authorized-keys-check git %u %k
  AuthorizedKeysCommandUser git
Match all    # End match, settings apply to all users again

Затем перезапустите свой SSH-сервер. Подробности: Настройка быстрого поиска через GitLab Shell

Я проверил журналы в /var/log/auth.log, и у меня не было git @ mymachine в AllowUsers. Спасибо @MichaelHampton!