Gitlab — ошибка клонирования git как с ssh, так и с https в macOS

Мой коллега предоставил мне доступ к своему репозиторию в качестве Мастера, затем я клонировал его как с SSH, так и с HTTPS, но это всегда терпело неудачу:

GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.

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

я проверил сгенерированный открытый ключ в файле .pub и уже вставил его в свою учетную запись Gitlab. и я также пытался клонировать репозиторий (от другого владельца), и он работает! это сбивает с толку.

я что-то пропустил?


person vanio178    schedule 09.05.2018    source источник
comment
Убедитесь, что у вас нет других ключей в каталоге .ssh, а также проверьте ключи, загруженные в ваш агент ssh.   -  person Roman    schedule 09.05.2018
comment
теперь работает, спасибо!   -  person vanio178    schedule 10.05.2018


Ответы (2)


У меня была такая же проблема, и я нашел несколько проблем. Я не эксперт в этой области, но вот краткое изложение шагов, которые я предпринял для решения. Надеюсь, это будет полезно:

Решение проблемы с клонированием HTTPS:

  1. Клонирование завершилось ошибкой, описанной выше, и мне не предлагалось ввести имя пользователя и пароль в командной строке. Запуск клона с подробным флагом

    git clone --progress --verbose https://[my_gitlab_server]/[repo]/[project].git

    показал, что git извлекает учетные данные из OSX Toolchain, которые, по-видимому, неверны. Я отключил это, используя инструкции здесь.

    sudo git config --system --unset credential.helper

  2. Теперь я получал запрос имени пользователя и пароля, но получил:

    удаленный: базовый HTTP: доступ запрещен удаленный: вы должны использовать личный токен доступа с областью действия «api» для Git через HTTP. удаленный: вы можете сгенерировать его на странице https://[my_gitlab_server]/profile/personal_access_tokens. 'https://[my_gitlab_server]/[repo]/[project].git/< /а>'

    Поэтому я создал токен личного доступа, как указано здесь.

  3. Я не знал, что делать с токеном. Оказывается, вы можете включить его в URL-адрес, как описано здесь (для меня это выглядело как git clone https://oauth2:[token]@[my_gitlab_server]/[project].git ) или вы можете просто вставить токен в приглашение командной строки для «пароля».

Теперь я мог клонировать через HTTPS.

Решение проблемы с клонированием SSH:

Клон SSH выдавал ту же ошибку, что и клон HTTPS. Здесь будет полезна некоторая справочная информация об агентах bash.

  1. Я нашел свой файл ~/.ssh/config в своем пользовательском каталоге и убедился, что в репозитории есть запись.

    Host [my_gitlab_server]/[repo] IdentityFile ~/.ssh/id_rsa2

  2. У меня было несколько файлов id-rsa в каталоге ssh, поэтому я открыл id_rsa2.pub (тот, который связан с моим репозиторием в файле конфигурации) и сравнил его с ключом, который я нашел в своем репозитории, перейдя на вкладку «Ключи SSH» в моих «Настройках профиля». Ключи были одинаковые.

    (Если вам нужна помощь в создании и просмотре ключей, см. документацию здесь.)

Мои ключи были на месте, но мой клон SSH все еще не работал.

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

    eval $(ssh-agent -s) ssh-add ~/.ssh/id_rsa2

    Это сработало, поэтому я знал, что мой ключ действителен.

    (Кстати, чтобы увидеть ключи, загруженные в ваш агент, запустите ssh-add -L, а чтобы увидеть их отпечатки пальцев, запустите ssh-add -l.)

Теперь проблема заключалась в том, что мне нужно было использовать файл ~/.ssh/config, чтобы мне не приходилось запускать eval и ssh-add каждый раз, когда я открываю новое окно терминала.

  1. Чтобы устранить неполадки, я запустил ssh -Tvv git@[my_gitlab_server], который успешно подключился к моему серверу gitlab, но с помощью ключа, который я не узнал. В выводе я заметил, что файл id-rsa2 не искался.
  2. Используя информацию с ssh.com о keys и файлы ssh_config, я нашел / etc/private/ssh/ssh_config указывает, какие ключи используются. По умолчанию были:

    IdentityFile ~/.ssh/id_rsa IdentityFile ~/.ssh/id_dsa IdentityFile ~/.ssh/id_ecdsa IdentityFile ~/.ssh/id_ed25519

    Я добавил свой ключ id_rsa2, запустив sudo nano /private/etc/ssh/ssh_config и добавив эту строку:

    IdentityFile ~/.ssh/id_rsa2

Это сработало как чемпион.

В целом лучше использовать один ключ ssh с именем id_rsa по умолчанию, чтобы избежать подобных проблем.

person mdarden    schedule 26.10.2018

Хорошо, не могли бы вы проверить правильность ваших глобальных переменных git относительно вашей учетной записи GitLab.

$ git config --global user.name "Your name"
$ git config --global user.email [email protected]

У меня возникли проблемы с клонированием, когда мои данные были неверными.

person Emmanuel Aldana    schedule 09.05.2018