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

Какие «права доступа» могут блокировать доступ к репозиторию gitlab?

Я пытаюсь настроить gitlab (6.5.1) на свежий чистый сервер. Кажется, все работает, но git не может отправить ни в один проект. Следуя командам на вновь созданной странице проекта и нажав на удаленное устройство через ssh, вы получите:

$ git push -u origin master
fatal: Could not read from remote repository.

Please make sure you have the correct access
rights and the repository exists.

Кажется, это довольно распространенная проблема. К сожалению, у этого есть ряд потенциальных причин, и ни одна из них не подходит. Из Выпуск 3424 в старом выпуске и различных других источниках в Интернете я видел и проверял следующие предложения:

Кажется, это целый перечень предлагаемых решений, но ни одно из них не кажется правильным. Примечание I могу протолкнуть http. Запрос на вход в систему принимает мое имя пользователя и пароль ldap и принимает push. Это только проблема при попытке использовать SSH. Тестирование только части входа в ssh с помощью ssh -T gitlab@server работает отлично.

Что еще могло вызвать эту ошибку?

Как отладить такую ​​проблему в gitlab? Кажется, что в ~gitlab/gitlab-shell/gitlab-shell.log. Где найти более информативное сообщение об ошибке?

Я почти уверен, что у вас есть проблема с настройкой между SSH и системой из-за этого сообщения отладки SSH:

client_input_channel_req: channel 0 rtype eow@openssh.com reply 0

Вы получаете это сообщение сразу после успешной аутентификации и отсутствия сообщения от bash, что означает, что никакая программа не была запущена после входа в систему.

Посмотрите в своем файле passwd, если у вас есть правильные настройки для пользователя gitlab:

gitlab:x:1011:1012:GitLab,,,:/path/to/gitlab:/bin/bash

Убедитесь, что bash не имеет ничего странного в файлах конфигурации, таких как

  • bash.bashrc
  • .профиль
  • .bashrc

Затем перейдите на более высокий уровень: Gitlab-shell Проверьте /path/to/gitlab/.ssh/authorized_keys имеет конфигурацию ниже:

command="/path/to/gitlab/gitlab-shell/bin/gitlab-shell key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa A...

с участием / путь / к / gitlab / gitlab-shell / bin / gitlab-shell принадлежит пользователю gitlab и исполняемому файлу.

Вы можете быть уверены, что gitlab-shell полностью работоспособен, запустив команду:

# /path/to/gitlab-shell/bin/gitlab-shell
Welcome to GitLab, Anonymous!

Если удаленный вход в систему действительно работает и правильно подключен к оболочке gitlab, вы должны получить такое же приветственное сообщение (но соответствующее пользователю, чей ключ ssh вы использовали для входа в систему), прежде чем он выкинет вас, если вы попытаетесь войти в систему удаленно.

$ ssh gitlab@server
Welcome to GitLab, <your user's full name>!
Connection to <server> closed.

Нет сообщения здесь, вероятно, означает, что ssh вообще не подключает вас к gitlab.

Наконец, проверьте конфигурацию оболочки gitlab (config.yml) и убедитесь, что:

http_settings:
    # trailing slash is important
    gitlab_url: "https://remote_server/"
    ca_file: /path/to/webserver/certificate.crt

и в итоге:

    self_signed_cert: false

У меня была такая же проблема, и после нескольких дней поиска в Google и поиска по переполнению стека я наконец нашел свою проблему. Я хотел связать это в письменной форме с Gitlab на случай, если у кого-то такая же проблема.

Я нашел здесь свое решение: https://stackoverflow.com/questions/17307154/git-bash-push-to-bitbucket-ignores-ssh-key

Я работаю в Windows, и проблема заключалась в том, что Git Bash пытался получить местоположение своего ключа SSH из файла plink.exe, установленного с Putty.

Решением было удалить переменную окружения GIT_SSH. Потом все заработало.

Надеюсь, это поможет кому-то там.