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

Git Bash: не удалось открыть соединение с вашим агентом аутентификации

Я новичок в Github, а Generating SSH Keys выглядят необходимыми. И об этом сообщил мой босс, поэтому мне нужно выполнить.

Я успешно создал SSH-ключ, но когда я собираюсь добавить его в ssh-agent

вот что происходит

Какая проблема?

enter image description here

4b9b3361

Ответ 2

Я проверил все решения на этом посту и пост, указанный выше, и я не нашел решения, которое сработало для меня.

Я использую Git 1.9.5 Предварительный просмотр в Windows 7 со следующей конфигурацией: - Запустите Git из командной строки Windows - Оформить заказ в стиле Windows, зафиксировать окончание строк в стиле Unix

Я использовал консоль Git Bash 'для всех... И все было хорошо, пока я не попытался установить SSH-ключи. Документация GitHub говорит, что нужно сделать следующее (не запускайте эти команды, пока не закончите чтение сообщения):

Убедитесь, что ssh-agent включен:

Если вы используете Git Bash, включите ssh-agent:
# start the ssh-agent in the background
ssh-agent -s
# Agent pid 59566
Если вы используете другое приглашение терминала, например msysgit, включите ssh-agent:
# start the ssh-agent in the background
eval $(ssh-agent -s)
# Agent pid 59566

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

В результате получается один процесс Windows ssh-agent, который создается каждый раз, когда вы запускаете эти команды (обратите внимание на новый PID каждый раз, когда вы вводите эти команды?)

Итак, Ctrl + Alt + Del и нажмите End Process, чтобы остановить процесс ssh-agent.exe.

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

В ' Git Bash':

Запустите процесс ssh-agent.exe

eval $(ssh-agent -s)

И установите ключи SSH

ssh-add "C:\Users\MyName\.ssh\id_rsa"

* Откорректируйте путь выше с вашим именем пользователя и убедитесь, что расположение каталога * /. ssh находится в нужном месте. Я думаю, вы выбрали это место во время установки Git? Может быть, не...

Часть, которую я делал неправильно, прежде чем я понял это, не использовал кавычки вокруг местоположения ssh-add. Выше описано, как его нужно вводить в Windows.

Ответ 3

В Windows вы можете использовать Запуск с одной из следующих команд.

Для 32-битных:

"C:\Program Files (x86)\Git\cmd\start-ssh-agent.cmd"

For-64 Bit:

"C:\Program Files\Git\cmd\start-ssh-agent.cmd"

Ответ 4

Ситуация: приложение MVS2017 - Использование Git Bash в Windows 10 - Попытка подключения к хранилищу BitBucket.

Для ясности, когда вы устанавливаете Git для Windows (https://git-scm.com/download/win), он поставляется с утилитой Git Bash.

enter image description here

Итак, я нахожусь в "Git Bash" следующим образом:

[email protected] MINGW64 ~/source/repos/DoubleIrish (master)
$ git remote add origin [email protected]:Guiness/DoubleIrish.git
$ git remote -v
origin  [email protected]:Guiness/DoubleIrish.git (fetch)
origin  [email protected]:Guiness/DoubleIrish.git (push)
[email protected] MINGW64 ~/source/repos/DoubleIrish (master)
$ git push -u origin master
[...]
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Закрытый ключ настроен?

$ ssh -V
OpenSSH_7.7p1, OpenSSL 1.0.2p  14 Aug 2018
$ ls -a ~/.ssh
./  ../  known_hosts

Я вижу, что на данный момент мой файл закрытого ключа (id_rsa) отсутствует. Поэтому я добавляю это: (примечание: создание пары закрытых и открытых ключей выходит за рамки моего ответа, но я могу сказать, что в Linux вы можете использовать для этого ssh-keygen.)

$ ls -a ~/.ssh
./  ../  id_rsa  known_hosts

ОК, давайте продолжим:

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-KhQwFLAgWGYC/agent.18320; export SSH_AUTH_SOCK;
SSH_AGENT_PID=17996; export SSH_AGENT_PID;
echo Agent pid 17996;

$ ssh-add ~/.ssh/id_rsa
Could not open a connection to your authentication agent.

Чтобы решить эту проблему, я запускаю:

$ ssh-agent bash

А потом опять:

$ ssh-add ~/.ssh/id_rsa
Identity added: /c/Users/Mike.CORP/.ssh/id_rsa (/c/Users/Mike.CORP/.ssh/id_rsa)

Это сработало для меня. Надеюсь это поможет

Ответ 5

Я тоже боролся с проблемой.

После ввода $ eval 'ssh-agent -s' с последующим $ ssh-add ~/.ssh/id_rsa

Я получил то же жалобу: "Не удалось открыть соединение с вашим агентом проверки подлинности". Тогда я понимаю, что на моей компьютерной клавиатуре есть две разные цитаты. Поэтому я попробовал ту же позицию, что и "~": $ eval ssh-agent -s $ ssh-add ~/.ssh/id_rsa

И это звучит так.

Ответ 6

Я хотел бы улучшить принятый ответ

Недостатки использования .bashrc с eval ssh-agent -s:

  1. У каждого git-bash будет свой процесс ssh-agent.exe
  2. Ключ SSH должен добавляться вручную каждый раз, когда вы открываете git-bash

Вот мой .bashrc, который искоренит все недостатки

Поместите этот .bashrc в свой домашний каталог (Windows 10: C:\Users\[username]\.bashrc), и он будет выполняться каждый раз, когда открывается новый git-bash и ssh-add будет работать как гражданин первого класса

Прочитайте #comments, чтобы понять, как это работает

# Env vars used
# SSH_AUTH_SOCK - ssh-agent socket, should be set for ssh-add or git to be able to connect
# SSH_AGENT_PID - ssh-agent process id, should be set in order to check that it is running
# SSH_AGENT_ENV - env file path to share variable between instances of git-bash
SSH_AGENT_ENV=~/ssh-agent.env
# import env file and supress error message if it does not exist
. $SSH_AGENT_ENV 2> /dev/null

# if we know that ssh-agent was launched before ($SSH_AGENT_PID is set) and process with that pid is running 
if [ -n "$SSH_AGENT_PID" ] && ps -p $SSH_AGENT_PID > /dev/null 
then
  # we don't need to do anything, ssh-add and git will properly connect since we've imported env variables required
  echo "Connected to ssh-agent"
else   
  # start ssh-agent and save required vars for sharing in $SSH_AGENT_ENV file
  eval $(ssh-agent) > /dev/null
  echo export SSH_AUTH_SOCK=\"$SSH_AUTH_SOCK\" > $SSH_AGENT_ENV
  echo export SSH_AGENT_PID=$SSH_AGENT_PID >> $SSH_AGENT_ENV
  echo "Started ssh-agent"
fi

Также в этом сценарии используется небольшая хитрость, чтобы гарантировать, что предоставленные переменные среды совместно используются экземплярами git-bash, сохраняя их в файле .env.

Ответ 7

Попробуйте использовать cygwin вместо bash. это сработало для меня

Ответ 8

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

1) НЕ НЕ сгенерировать новый ключ ssh с помощью команды ssh-keygen -t rsa -C"[email protected]", вы можете удалить существующие ключи SSH.

2), но используйте Git GUI, → "Справка" → "Показать ключ ssh" → "Сгенерировать ключ", ключ будет автоматически сохранен в ssh и больше не нужно будет использовать ssh-add.