Как устранить ошибку Permission denied (publickey) при использовании Git?

Я думаю, вы найдете, что единственный надежный способ сделать это - использовать массив, а не ассоциативный массив, например:

var arr = [{key:23,val:"AA"},{key:12,val:"BB"}];
for(var i=0; i<arr.length; i++)
  document.write("Key: "+arr[i].key +" "+"Value: "+arr[i].val);
536
задан Diogo Gomes 19 November 2018 в 09:57
поделиться

8 ответов

Пользователь ранее не сгенерировал пару открытого / закрытого ключей ssh?

Эта информация работает с Chaw, но может быть применена ко всем остальным git репозитории, поддерживающие аутентификацию открытого ключа SSH. (См., Например, gitolite , gitlab или github.)

Сначала начните с создания собственного набора пар открытого / закрытого ключей. Этот может использовать либо DSA, либо RSA, поэтому практически любой ключ, который вы настроите, будет работать. В большинстве систем вы можете использовать ssh-keygen.

  • Сначала вам нужно записать компакт-диск в свой каталог .ssh. Откройте терминал и запустите:

    cd ~ / .ssh && ssh-keygen

  • Затем вам нужно скопировать это в буфер обмена. {{1 }}
    • В OS X запустите: cat id_rsa.pub | pbcopy
    • В Linux: cat id_rsa.pub | xclip
    • В Windows (через Cygwin / Git Bash) запустите: cat id_rsa.pub | clip
  • Добавьте ключ к своей учетной записи через веб-сайт.
  • Наконец, настройте ваш .gitconfig.
    • git config --global user.name "bob"
    • git config --global user.email (hidden) (не забудьте перезапустить командную строку, чтобы убедиться, что конфигурация перезагружена)

Вот и все должно быть хорошо клонировать и оформлять заказ.

Дополнительную информацию можно найти на https://help.github.com/articles/generating-ssh-keys (спасибо @Lee Whitney) -

пользователь сгенерировали ранее установленную пару открытого / закрытого ключей ssh?

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

eval $ (ssh -agent -s)

сообщает, где расположены ключи

ssh-add ~ / .ssh / id_rsa

698
ответ дан 22 November 2019 в 22:07
поделиться

Это работает для меня:

ssh-add ~/.ssh/id_rsa
20
ответ дан Wouter Schoofs 19 November 2018 в 09:57
поделиться

В моем случае я переустановил Ubuntu, и имя пользователя изменилось с предыдущего. В этом случае сгенерированный ключ ssh также отличается от предыдущего.

Проблема решена путем простого копирования текущего открытого ключа ssh в хранилище. Ключ будет доступен у вашего пользователя /home/.ssh/id_rsa.pub

1
ответ дан Sonu 19 November 2018 в 09:57
поделиться

Да, если вы используете git, просто следуйте документации. Theres чертовски много Документации, написанной на этом. Вы не можете пойти не так, если вы будете следовать этому. Просто начните сначала, если вам нужно. Ссылка: https://help.github.com/articles/connecting-to-github-with-ssh/

-4
ответ дан Mbuso Mkhize 19 November 2018 в 09:57
поделиться

Я только что столкнулся с этой проблемой при настройке моего текущего проекта, и ни одно из вышеуказанных решений не работает поэтому я попытался посмотреть, что на самом деле происходит в списке отладки, используя команду ssh -vT git@github.com. Я заметил, что моего закрытого ключа с именем файла нет в списке. поэтому переименовав имя файла с закрытым ключом в id_rsa, сделайте свою работу. надеюсь, это поможет.

2
ответ дан Rhey M. 19 November 2018 в 09:57
поделиться

Получено то же сообщение об ошибке.

Исправлено использование HTTP вместо. Так как я не хочу устанавливать «ключи SSH» для тестового ПК.

Измените URL-адрес на HTTP при клонировании:

git clone https://github.com/USERNAME/REPOSITORY.git

Моя проблема немного отличается : у меня установлен URL-адрес при добавлении существующего локального репо на удаленный компьютер с помощью:

git remote add origin ssh://github.com/USERNAME/REPOSITORY.git

Чтобы исправить это, сбросьте URL-адрес на HTTP:

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

Кстати, вы можете проверить свой URL-адрес с помощью команды:

git remote -v
origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
origin  https://github.com/USERNAME/REPOSITORY.git (push)

Надеюсь, это поможет некоторым такой как я : D [1 110]

17
ответ дан Robina Li 19 November 2018 в 09:57
поделиться

Это довольно прямо. Введите следующую команду

ssh-keygen -t rsa -b 4096 -C "youremailid@yourdomain.com"

Сгенерируйте ключ SSH. Откройте файл и скопируйте содержимое. Перейдите на страницу настроек GitHub и нажмите на ключ SSH. Нажмите Добавить новый ключ SSH и вставьте содержимое здесь. Вот и все :) Вы не должны видеть проблему снова.

2
ответ дан karthik339 19 November 2018 в 09:57
поделиться

Эта ошибка может возникать, когда вы обращаетесь к URL-адресу SSH (чтение / запись) вместо URL-адреса Git только для чтения, но у вас нет прав на запись в этот репозиторий.

Иногда вы просто хотите клонировать свое собственное репо, например, развернуть на сервере. В этом случае вам нужен только доступ только для чтения. Но поскольку это ваше собственное репо , GitHub может отображать URL SSH, если вы предпочитаете это. В этой ситуации, если открытый ключ вашего удаленного хоста отсутствует в ваших SSH-ключах GitHub, вашему доступу будет отказано, , что ожидается .

Эквивалентным случаем является случай, когда вы пытаетесь клонировать чужое хранилище, к которому у вас нет прав записи с помощью SSH URL.

Одним словом, , если вы хотите клонировать репо, используйте HTTPS URL (https://github.com/{user_name}/{project_name}.git) вместо SSH URL (git@github.com:{user_name}/{project_name}.git), что позволяет избежать (ненужной) проверки открытого ключа .


Обновление: GitHub теперь отображает HTTPS в качестве протокола по умолчанию, и этот шаг, вероятно, может уменьшить возможное неправильное использование URL-адресов SSH.

147
ответ дан kavinyao 19 November 2018 в 09:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: