Получение разрешения отклонено (открытый ключ) на gitlab

40

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

Разрешено исключение (публикация) фатальное: не удалось прочитать из удаленного репозитория

Из всех потоков, которые я посмотрел, вот что я сделал:

  • Настройте SSH-ключ на моем компьютере и добавьте открытый ключ в GitLab
  • Составлен config -global для имени пользователя и электронной почты.
  • Клонировано через SSH и через HTTP, чтобы проверить, не решит ли он проблему.
  • Выполнена команда ssh -T git @gitlab.com

Сейчас я хочу пробить свой компьютер. Если у вас есть представление о том, как решить мою проблему, мы будем очень благодарны.

  • 2
    запустите ssh -vvvv [email protected] чтобы увидеть, ssh -vvvv [email protected] ли он ключ SSH
  • 0
    Вы добавили ключ SSH через gitlab.com/profile/keys ?
Показать ещё 7 комментариев
Теги:
ssh
gitlab

10 ответов

94

Я нашел это после обыска. Это будет отлично для меня.

  • Перейдите в "Git Bash", как и cmd. Щелкните правой кнопкой мыши и "Запуск от имени администратора".
  • Тип ssh-keygen
  • Нажмите enter.
  • Он попросит вас сохранить ключ в конкретном каталоге.
  • Нажмите enter. Он предложит вам ввести пароль или ввести без пароля.
  • Открытый ключ будет создан в конкретном каталоге.
  • Теперь перейдите в каталог и откройте папку .ssh.
  • Вы увидите файл id_rsa.pub. Откройте его в блокноте. Скопируйте весь текст из него.
  • Перейдите к https://gitlab.com/profile/keys.
  • Вставить здесь в текстовое поле "ключ".
  • Теперь нажмите "Название" ниже. Он автоматически заполнится.
  • Затем нажмите "Добавить ключ".

Теперь дайте ему шанс, и это сработает наверняка.

  • 4
    и если у вас уже есть ключи, вы можете пропустить шаги с 1 по 6
  • 0
    В случае, если вы потеряли в копировании файла паба в буфер обмена. попробуйте следующее: type %userprofile%\.ssh\id_rsa.pub | clip
Показать ещё 2 комментария
23

Шаг 1: Добавлен файл конфигурации в папку ~/.ssh/, которая выглядит как

   User git
   Hostname gitlab.com
   IdentityFile ~/.ssh/id_rsa_gitlab
   TCPKeepAlive yes
   IdentitiesOnly yes

Шаг 2: просто клонируйте репозиторий git БЕЗ sudo.

  • 2
    Это решило это для меня!
  • 1
    Отлично, у меня получилось
Показать ещё 2 комментария
6

убедитесь, что вы не используете sudo git clone [email protected]:project/somethiing.git, иначе ssh будет выглядеть в /root/.ssh вместо загруженного вами ключа ~/.ssh/id_rsa

  • 0
    это работает для меня
  • 1
    Ага! Конечно.
4

Я думаю, что простое решение состоит в том, чтобы добавить закрытый ключ к агенту аутентификации (если ваш ключ не ~/.ssh/id_rsa),

ssh-add ~/.ssh/<your private key>

Вы в основном позволяете ssh-agent позаботиться об этом.

Кроме того, вы можете добавить его навсегда.

  • 0
    это файл с расширением .pub
  • 5
    Закрытый ключ - это файл без расширения .pub .
Показать ещё 1 комментарий
3

В моем случае это была не проблема gitlab, а конфигурация sshd. Сервер ssh не разрешал соединение, кроме списка пользователей. Пользователь git, который подключался удаленно к gitlab, не был в этом списке. Итак, проверьте это прежде всего.

Вы можете проверить конфигурацию вашего ssh-сервера в /etc/ssh/sshd_config. Если у вас есть строка с опцией AllowUsers, добавьте к ней git:

AllowUsers user1 user2 user3 git
  • 0
    Это решило и мою проблему.
2

У меня есть gitlab, работающий с докером, это то, что я сделал, чтобы исправить мою проблему.

Обнаружено, что внутри docker /var/log/gitlab/sshd/current было несколько вхождений сообщения:

Отказано в аутентификации: плохое владение или режимы для файла /var/opt/gitlab/.ssh/authorized_keys

После чего я изменил право собственности на этот файл с 99: пользователи на git: пользователи с помощью:

chown git: users authorized_keys

  • 1
    Спасибо огромное. Я запускаю Gitlab в Kubernetes, и в каталоге / gitlab-data (который также является точкой монтирования для authorized_keys) были проблемы с разрешениями. Простого чоуна было достаточно.
1

Подойдите к терминалу и снова сгенерируйте ключ ssh. Наберите ssh-keygen. Он спросит вас, где вы хотите сохранить его, введите путь.

Затем скопируйте открытый ключ на платформу gitlabs. Обычно начинается с ssh-rsa.

0

Я добавил свой ~/.ssh/id_rsa.pub в список известных ключей SSH в настройках GitLab https://gitlab.com/profile/keys. Это решило проблему для меня. :-)

0

если вы в Linux или Macox, просто попробуйте это в терминале:

ssh-add -l

если ничего не возвращается, попробуйте это:

ssh-add

он должен создать идентичность в ~/.ssh/id_rsa

после повторной попытки:

ssh-add -l

он должен вернуть вашу личность, поэтому после повторной попытки клонирования он должен работать

NB: не забудьте добавить свой ключ ssh в свой профиль gitlab

Спасибо

0

Я решил, как это..

Сгенерировал ключ для Windows с помощью этой команды:

ssh-keygen -t rsa -C "[email protected]" -b 4096

но проблема заключалась в том, что после выполнения этой команды она выдавала строку: "Введите файл, в котором нужно сохранить ключ (/c/Users/xxx/.ssh/id_rsa):" Здесь я давал только имя файла, из-за которого мой ключ был сохранен в моем pwd, а не в указанном месте. Когда я делал "git clone", он предполагал, что ключ находится в папке "/c/Users/xxx/.ssh/id_rsa", но он не был найден, поэтому он выдавал ошибку.

Во время генерации ключа было сгенерировано 2 файла, например "file1" и "file1.pub". Я переименовал оба этих файла в

file1 -> id_rsa 

а также

file1.pub -> id_rsa.pub

и поместил оба в "/c/Users/xxx/.ssh/"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню