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

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

Отказано в доступе (publickey) фатально: не удалось прочитать из удаленного репозитория

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

  • Установите ключ SSH на моем компьютере и добавьте открытый ключ в GitLab
  • Выполнено конфигурирование --global для имени пользователя и электронной почты
  • Клонируется через SSH и HTTP, чтобы проверить, решит ли это проблему
  • Выполнено командой ssh -T [email protected]

Если у вас есть какие-либо идеи о том, как решить мою проблему, это будет с благодарностью.

Ответы

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

Ответ 5

В моем случае это не сработало в WSL (Подсистема Windows для Linux).

Когда я начинаю WSL, я должен

  • запустить ssh-agent_ eval $(ssh-agent -s)
  • добавьте ключ в ssh-agent: ssh-add ~/.ssh/id_rsa
  • при появлении запроса введите пароль

Теперь связь работает.
Мы можем проверить это с помощью ssh -T [email protected]

примечания:

Ответ 6

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

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

AllowUsers user1 user2 user3 git

Ответ 7

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

ssh-add -l

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

ssh-add

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

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

ssh-add -l

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

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

Спасибо

Ответ 8

У меня была та же проблема, я решил ее, добавив новый ключ ssh:

  1. ssh-keygen -t ed25519 -C "[email protected]"
  2. Скопируйте ваш открытый SSH-ключ в буфер обмена (xclip -sel clip < ~/.ssh/id_ed25519.pub в моем случае в Linux)
  3. На gitlab зайдите в settings=>ssh keys и пропустите новый ключ

Ответ 9

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

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

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

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

chown git: users authorized_keys

Ответ 10

Шаги, которые нужно сделать, получили ту же ошибку, но я исправил ее. Gitlab хочет ssh-rsa, поэтому ниже приведен код для запуска ssh для rsa

  1. ssh-keygen -o -T rsa -b 4096 -C "[email protected]"

[email protected] - это адрес электронной почты вашей учетной записи на gitlab

  1. Он предложит вам ввести, поэтому просто нажмите Enter после того, как приведенный ниже код подсказывает,

    Введите файл для сохранения ключа (/home/yourDesktopName/.ssh/id_rsa):

  2. Он снова предложит вам ввести, поэтому просто нажмите Enter после того, как приведенный ниже код подсказывает,

    Введите фразу-пароль (пусто, без пароля):

  3. Он снова предложит ввести вас последним, поэтому просто нажмите Enter после того, как приведенный ниже код подсказывает,

    Введите ту же фразу еще раз:

  4. Вы покажете свою генерацию ssh-rsa.

  5. Войдите в свою учетную запись Gitlab и перейдите на правую панель навигации, вы получите настройки, а на левой боковой панели вы получите ключ ssh. Войдите в это.

  6. Посмотрите над подсказкой, в которой вас просят ввести, вы получите путь ssh-rsa.

  7. Перейдите в папку SSH и получите id_rsa.pub.

  8. Откройте его и получите ключ и скопируйте его в Gitlab, и вы почти закончили.

  9. Проверьте: ssh -T [email protected]

  10. Вы получите: Welcome to GitLab, @joy4!

  11. Готово.

Ответ 11

Если у вас есть несколько учетных записей GIT, и вы хотите другой ключ SSH

Вы должны выполнить тот же шаг для генерации ключа SSH, но убедитесь, что вы

ssh-keygen -t ed25519 -C "[email protected]" 

Введите путь, который вы хотите сохранить (например: my-pc/Desktop/.ssh/ed25519)

Добавьте открытый ключ к вашему gitlab (Как добавить ключ ssh в gitlab)

Вы должны новый ssh идентификатор, используя команду ниже

ssh-add ~/my-pc/Desktop/.ssh/ed25519

Ответ 12

Две вещи в основном

  1. У вас должны быть ключи id_rsa.pub и id_rsa (приватные) в вашей папке .ssh (которая должна быть в вашей домашней папке. Создайте ее, если ее там нет, и вставьте свои ключи). Это не сработало бы, если бы вы назвали свои ключевые файлы по-другому

  2. Измените разрешение id_rsa как chmod 400 ~/.ssh/id_rsa

Ответ 13

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

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

Ответ 14

Я нашел решение в помощи gitlab.

To create a new SSH key pair: 
 1. Open a terminal on Linux or macOS, or Git Bash / WSL on Windows.
 2. Generate a new ED25519 SSH key pair: ssh-keygen -t ed25519 -C "[email protected]"
 2.1 Or, if you want to use RSA: ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
 3. Next, you will be prompted to input a file path to save your SSH key pair to... use the suggested path by pressing Enter
 4. Once the path is decided, you will be prompted to input a password to secure your new SSH key pair. It a best practice to use a password, but it not required and you can skip creating it by pressing Enter twice.
 5. Copy your public SSH key to the clipboard by using one of the commands below depending on your Operating System:
        macOS:        pbcopy < ~/.ssh/id_ed25519.pub
        WSL / GNU/Linux (requires the xclip package):      xclip -sel clip < ~/.ssh/id_ed25519.pub
        Git Bash on Windows:      cat ~/.ssh/id_ed25519.pub | clip
 6. Navigating to SSH Keys and pasting your public key in the Key field
 7. Click the Add key button

Я надеюсь, что это может помочь некоторым из вас!

Ответ 15

Другая проблема, которая может вызвать это поведение, - это когда у вас есть установка с 2 возможными% HOME% -locations.

Я использую ПК, где некоторые из моих документов хранятся локально, а некоторые хранятся на сетевом диске. Некоторые приложения считают, что C:\Users\<MyUserName>\ - это мой %home%, другие считают, что U:\ - это домашний.

Оказывается, ssh-keygen поместил мой закрытый ключ в C:\users\<MyUserName>\, и что ssh -T и ssh -v также смотрят туда.

Таким образом, все работает нормально, за исключением того, что git clone, git push и другие ищут ключ в U:\. Что не получается, поэтому я получаю вышеупомянутую ошибку.

Мне потребовался час, чтобы выяснить это, но в итоге решение было простым: я скопировал все с C:\Users\<MyUserName>\.ssh в U:\.ssh

Ответ 16

Как добавить ключ SSH в учетную запись gitlab в Ubuntu?

  1. Откройте терминал в каталоге вашего проекта.
  2. Введите 'ssh-keygen -o -t rsa -b 4096 -C "ваш электронный адрес gitlab" и нажмите Enter
  3. Введите 'vim/home/mnbtech/.ssh/id_rsa.pub и нажмите клавишу ввода (или вручную откройте свой id_rsa.pub из того места, где вы его сохранили)
  4. SSH ключ появится. Скопируйте те и

  5. Зайдите в свой аккаунт на gitlab.

  6. Нажмите на изображение профиля и нажмите настройки
  7. В левой части выберите SSH-ключи
  8. Затем вставьте эти ключи Нажмите кнопку Добавить ключ

SSH-ключ будет добавлен!

(Обратите внимание, что если у вас есть Генерировать предварительный просмотр SSH-ключа и Получение разрешения запрещено (открытый ключ). Вы удаляете ssh-ключ для предварительного просмотра и генерируете новый и добавляете git user.name и email на свой терминал)

Ответ 17

Раньше это было очень трудно для меня, но когда я попробовал, стало так легко добавить ключ ssh в Mac и Linux. Есть несколько шагов и команда, чтобы сделать это следующим образом:

  1. Откройте терминал вашей системы и перейдите в каталог проекта с помощью команды:
cd 'project directory name'
  1. Запустите команду ssh-keygen в этом терминале и вводите ее, пока там не появится изображение ключа randomart.

  2. Затем введите еще одну команду в этом терминале:

cat ~/.ssh/id_rsa.pub

Он сгенерирует ваш ключ ssh. Ключ начинается с ssh-rsa и заканчивается на .local.

  1. Скопируйте ключ и перейдите в раздел профиля Gitlab, затем раздел ssh key и вставьте его туда. Нажмите на кнопку Add, это сработает.

Ответ 18

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

Сгенерировал ключ для 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/"

Ответ 19

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

Ответ 20

Я использую Ubuntu 18.04, и это была проблема с правами доступа на моей локальной машине. Проблема исчезла, когда я установил разрешение на чтение/запись для своей папки .git.

Ответ 21

Ну, у меня была такая же проблема, и после попытки ответа @Khan предложил. Однако я смог заставить его работать, просто изменив исходный URL в файле .git/config на адрес https: https://gitlab.com/mygitlabusername/mygitproject.git

Поскольку доступ через ssh запрещен, я понял, что использование https не должно быть проблемой. Тем не менее, он будет запрашивать ваше имя пользователя и пароль для каждого нажатия на репозиторий в

Ответ 22

Проблема для меня заключалась в том, что я переключил UsePAM с yes на no в файле конфигурации SSH в /etc/ssh/sshd_config. С UsePAM yes все работает отлично.

Ответ 23

Пожалуйста, используйте git config credential.helper store если ваш сайт использует TLS/SSL. Надеюсь, это работает

Ответ 24

Кажется, существуют различия между двумя способами доступа к репозиторию git, то есть с использованием SSH или HTTPS. Для меня я столкнулся с ошибкой, потому что я пытался протолкнуть свой локальный репозиторий, используя SSH.

Эту проблему можно просто решить, нажав кнопку клонирования на целевой странице вашего проекта и скопировав ссылку HTTPS и заменив ее ссылкой SSH, отображаемой в формате "git @gitlab...".

Ответ 25

Существует очень простое решение: вместо работы с ssh - перейдите на https. сделать это: в папке вашего проекта у вас есть папка .git там - у вас есть файл конфигурации - откройте его в текстовом редакторе и измените строку

url [email protected]:yourname/yourproject.git

в

url = https://gitlab.com/yourname/yourproject.git

Ответ 26

Изменить разрешение :: chmod 400 ~/.ssh/id_rsa Это помогло мне.