Gitlab - git clone не удалось как с 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. и я также пытался клонировать репозиторий (от другого владельца), и это работает! это сбивает с толку.

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

Убедитесь, что у вас нет других ключей в каталоге .ssh, а также проверьте ключи, загруженные в ваш агент ssh.

Roman 09.05.2018 21:27

теперь работает, спасибо!

vanio178 10.05.2018 02:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
3 464
2

Ответы 2

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

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

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

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

Решение проблемы клонирования 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 Basic: доступ запрещен удаленный: необходимо использовать токен личного доступа с областью api для Git через HTTP. удаленный: вы можете создать его на https: // [my_gitlab_server] / profile / personal_access_tokens фатальный: ошибка аутентификации для 'https: // [my_gitlab_server] / [репо] / [проект] .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 о ключи и файлы ssh_config, я обнаружил, что файл / и т.д. / частный / 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 по умолчанию, чтобы избежать подобных проблем.

Другие вопросы по теме