Подтвердить что ты не робот

Исходное дерево SSH Public Key Denied

Я работаю над проектом в частном репозитории на https://www.bitbucket.com.

Я кодирую его локально, затем организую, комментируя и нажимаю обновление vie BitBucket Windows Git client, Sourcetree.

После этого я вынимаю файлы с удаленного сервера , для которого требуется аутентификация SSH.

Я попробовал следующее, чтобы связать репозиторий Git с учетной записью bitbucket:

  • Запустил встроенный агент SSH Sourcetree (Pageant)
  • Добавил мой .ppk(закрытый ключ PuTTY) к странице, используя мою кодовую фразу
  • Открыл TerminalTree Terminal в местоположении моего проекта, позвонил ему C:/Project.
  • Используется git init для инициализации репозитория.
  • Используется git push -u origin --all, чтобы перетащить репо с моего компьютера на BitBucket.
  • Получил эту ошибку: Permission denied (publickey).
  • Пытался проверить, могу ли я ssh -Tv [email protected] - все еще, Permission denied.

Я пытаюсь выяснить, что именно пошло не так - нашел ли мой ключ SSH вообще? Не загружен ли ключ в определенном месте?

Примечание. Я загрузил открытый ключ в свой профиль в BitBucket.

4b9b3361

Ответ 1

Ну, я нашел решение после долгих проб и ошибок. По-видимому, использование PUTTY-ключа и сохранение нового открытого ключа в моей папке .ssh не работает. Однако использование ssh-keygen IN GIT BASH, а затем попытка входа в систему с использованием новой сгенерированной пары ключей работает отлично. Из любопытства, хотя больше всего на свете - я хотел бы знать, почему это так.

Ответ 2

Для кого может быть такая же проблема на Mac с новой Sierra. Решением было бы добавить закрытый ключ к агенту SSH через:

ssh-add -K ~/.ssh/id_rsa

Похоже, что идентификатор [id_rsa] не сохраняется агентом SSH.

Обратите внимание, что это не постоянное решение. Это необходимо делать каждый раз, когда вы клонируете новый репозиторий. По крайней мере, тогда нет необходимости предоставлять закрытый ключ для каждого push-запроса на удаленный доступ.

-------- Обновление 28 сентября 2017 г. --------

Постоянное решение (на Сьерра):

Этапы:

1- Прежде чем что-либо предпринимать, убедитесь, что у вас запущен ssh-агент в фоновом режиме.

Чтобы проверить, запущен ли ssh-agent:

pgrep 'ssh-agent'

Эта команда возвращает PID (ProcessID) этого процесса, если он запущен. Если вы видите значение. Перейдите на Шаг № 2. если нет, то вам нужно запустить этот агент в фоновом режиме:

eval "$(ssh-agent -s)"

2- Редактировать ~/.ssh/config (Создать, если он не существует как su):

Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/id_rsa

3- Затем добавьте этого ключевого агента (это будет один раз):

ssh-add -K ~/.ssh/id_rsa

Вот оно.

На самом деле Шаг № 2 является решающим. Я просто хочу предоставить полное руководство.

Я надеюсь, что это может помочь вам.

Ответ 3

Мне нужно было дополнительно изменить эти настройки SourceTree: enter image description here

Ответ 4

Я знаю, что это разрешено, но чтобы добавить к принятому ответу, вам действительно не нужно Git Bash, чтобы это работало. Как сказал Cupcake, верно, что PuTTY выдает файлы .ppk для закрытых ключей, которые не будут работать вне обычного контекста PuTTY/Pageant.

Это связано с тем, что по умолчанию терминал ожидает найти файл с именем id_rsa в ~/.ssh, а PuTTY не генерирует его по умолчанию. Git Bash ssh-keygen, хотя именно поэтому работает решение Tom Granot. Вы можете, однако, через генератор ключей PuTTY экспортировать тот же самый точный файл с помощью опции Conversions/Export OpenSSH Key... в меню. Просто не забудьте назвать его id_rsa и поместите его рядом с вашим файлом id_rsa.pub, и все должно работать нормально.

Ответ 5

Это случилось со мной после обновления моего Sourcetree на моем Mac. Для меня работало просто удаление всего в папке ~/.ssh/, кроме папок .config и known_hosts. Затем просто перейдите к исходному дереву в настройках, удалите свою учетную запись на github, заново добавьте профиль после удаления всех открытых и закрытых ключей .ssh, а исходное дерево должно повторно добавить ключи локально и в GitHub.

Ответ 6

Это старый вопрос, но каждый раз, когда происходит обновление MacOS, я сталкивался с этой проблемой. Каталина не была исключением.

Во-первых, вы должны проверить свой конфигурационный файл, чтобы убедиться, что ваши старые ключи все еще там... он должен:

~ ls -al ~/.ssh

Затем вы должны снова добавить свой ключ (и) под именем, указанным выше:

~ ssh-add -K ~/.ssh/[key-name]