Я сталкиваюсь с этой ошибкой:
$ git push heroku master
Warning: Permanently added the RSA host key for IP address '50.19.85.132' to the list of known hosts.
! Your key with fingerprint b7:fd:15:25:02:8e:5f:06:4f:1c:af:f3:f0:c3:c2:65 is not authorized to access bitstarter.
Я попытался добавить ключи, и я получаю эту ошибку ниже:
$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.
$ ssh-agent /bin/sh
и$ ssh-add $yourkey
git config --list
чтобы увидеть, если вы установилиcredential.helper
- если у вас есть, вы должны удалить этот параметр, так как помощник бесполезен.Ответы:
Вы начали
ssh-agent
?Вам может потребоваться запустить
ssh-agent
перед запускомssh-add
команды:Обратите внимание, что это запустит агент для msysgit Bash в Windows . Если вы используете другую оболочку или операционную систему, вам может потребоваться использовать вариант команды, такой как перечисленные в других ответах .
Смотрите следующие ответы:
Чтобы автоматически запустить ssh-agent и позволить одному экземпляру работать в нескольких окнах консоли, см. Раздел Запуск ssh-agent при входе в систему .
Почему мы должны использовать
eval
вместо простоssh-agent
?Чтобы узнать почему, смотрите ответ Робин Грин .
Публичные и частные ключи
Кроме того, всякий раз, когда я использую
ssh-add
, я всегда добавляю к нему закрытые ключи. Файл~/.ssh/id_rsa.pub
выглядит как открытый ключ, я не уверен, что это будет работать. У вас есть~/.ssh/id_rsa
файл? Если вы откроете его в текстовом редакторе, он говорит, что это закрытый ключ?источник
ssh-add
просто расшифровывает зашифрованный закрытый ключ на хост-машине, чтобы его можно было использовать локально ... он никогда никому не отправлялся . Я предполагаю, что только открытые ключи когда-либо передаются по сети. Мое понимание неверно?eval ssh-agent -s
работает, но самssh-agent
по себе это не так.SSH_AUTH_SOCK
IIRC). Если вы просто запустите,ssh-agent
агент запустится, но SSH не будет знать, где его найти.Я пробовал другие решения безрезультатно. Я провел дополнительные исследования и обнаружил, что работает следующая команда. Я использую Windows 7 и Git Bash .
Больше информации в: https://coderwall.com/p/rdi_wq
источник
Следующая команда работала для меня. Я использую CentOS.
источник
ssh-add my.id_rsa
потерпел бы неудачу. Ноexec ssh-agent zsh
дал среду, где я могssh-add
без проблем. И я нахожусь в моем контейнереMsysGit или Cygwin
Если вы используете Msysgit или Cygwin, вы можете найти хорошее руководство в SSH-Agent по msysgit, cygwin и bash :
Добавьте файл с именем
.bashrc
в вашу домашнюю папку.Откройте файл и вставьте в:
Это предполагает, что ваш ключ находится в обычном
~/.ssh/id_rsa
месте. Если это не так, укажите полный путь послеssh-add
команды.Добавить или создать файл
~/.ssh/config
с содержимымВ оригинальном уроке
ForwardAgent
парам естьYes
, но это опечатка. Используйте все строчные буквы, иначе вы получите ошибки.Перезапустите Msysgit. Он попросит вас ввести пароль один раз, и все (до тех пор, пока вы не закончите сеанс или пока ваш ssh-agent не будет убит).
Mac OS X
Если вы не хотите запускать новый ssh-агент каждый раз, когда открываете терминал, проверьте Keychain . Я сейчас на Mac, поэтому я использовал учебник ssh-agent с zsh & keychain для Mac OS X, чтобы настроить его, но я уверен, что поиск Google будет иметь много информации для Windows.
Обновление : лучшее решение для Mac - добавить ключ в связку ключей Mac OS:
Просто как тот.
источник
eval `ssh-agent -s`
процесс не останавливается, когда я выхожу из Cygwin.ps -u $(whoami) | grep ssh-agent &> /dev/null || eval $(ssh-agent)
- иначе новый ssh-agent запускается каждый раз. Время от времени убивал мою машину, когда у пользователя были cronjobs.ForwardAgent yes
не является обязательным и представляет собой не теоретический риск безопасности, если он установлен для любого ненадежного сервера. Локальный доступ к вашему ключевому агенту должен работать независимо от этого параметра.Не удалось открыть соединение с вашим агентом аутентификации
Чтобы устранить эту ошибку:
Баш:
Tcsh:
Затем используйте
ssh-add
как обычно.Горячий совет:
Я всегда забывал, что печатать для вышеприведенных команд ssh-agent, поэтому я создал псевдоним в своем
.bashrc
файле следующим образом:Теперь вместо использования
ssh-agent
я могу использоватьssh-agent-cyg
Например
Первоначальный источник исправления:
http://cygwin.com/ml/cygwin/2011-10/msg00313.html
источник
eval
команду каждый раз, когда вы выполняли ранееssh-agent
. Теперь я использую псевдоним, см. Обновленный ответ о том, как я это делаю.fatal: Could not read from remote repository.
.Я столкнулся с той же проблемой для Linux, и вот что я сделал:
По сути, команда ssh-agent запускает агент, но на самом деле не устанавливает переменные среды для его запуска. Он просто выводит эти переменные в оболочку.
Тебе следует:
и затем сделайте ssh-add. См. Не удалось открыть соединение с вашим агентом аутентификации .
источник
Запустить
Для получения более подробной информации вы можете искать
или беги
источник
ssh-copy-id
в Ubuntu. Не знаю, почему я не смог добавить ключ, неssh-agent
запустив bash.ssh-agent zsh; ssh-add
Для ssh-add и ssh (при условии, что вы используете реализации openssh) требуется переменная окружения, чтобы знать, как общаться с агентом ssh. Если вы запустили агент в окне командной строки, отличном от того, которое вы используете сейчас, или если вы запустили его неправильно, ни ssh-add, ни ssh не увидят, что эта переменная окружения установлена (поскольку переменная окружения установлена локально для команды подскажите он установлен).
Вы не говорите, какую версию ssh вы используете, но если вы используете cygwin, вы можете использовать этот рецепт от агента SSH на Cygwin :
Это автоматически запустит агента для каждого нового окна командной строки, которое вы открываете (что неоптимально, если вы открываете несколько командных строк в одном сеансе, но по крайней мере это должно работать).
источник
eval $(ssh-agent)
и я могу использовать ssh без пароля для каждого нового окна терминала.Попробуйте выполнить следующие действия:
1) Откройте Git Bash и запустите:
cd ~/.ssh
2) Попробуйте запустить агент:
eval $(ssh-agent)
3) Прямо сейчас вы можете запустить следующую команду:
ssh-add -l
источник
ps aux | grep ssh
иkill
в ответе Рика, чтобы убить агентов. После этогоssh-add
работал без ключа -l (Использование -l дало ошибку).eval 'ssh-agent'
так как в ответе Рика не получилось, мне пришлось использоватьeval $(ssh-agent)
как в ответе Чечоро здесь.$(ssh-agent)
эквивалентно,`ssh-agent`
но более читабельно.Вместо того, чтобы использовать
$ ssh-agent -s
, я использовал$ eval `ssh-agent -s`
для решения этой проблемы.Вот что я выполнил шаг за шагом (шаг 2 и далее на GitBash):
C:\user\<username>\.ssh\
$ ssh-keygen -t rsa -b 4096 -C "xyz@abc.com"
$ ps aux | grep ssh
$ kill <pids>
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/id_rsa
источник
ssh-agent -s
и добавить старый ключ, используя ssh-add ~ / .ssh / id_rsa. Если вы генерируете новый ключ SSH, вам нужно будет обновить этот ключ во всех ваших службах, таких как github, bitbucket и т. Д.ssh-agent -s
запущу " eval " и "ssh-add ~ / .ssh / id_rsa" снова.В Windows 10 я попробовал все ответы, перечисленные здесь, но ни один из них, похоже, не работал. На самом деле они дают подсказку. Чтобы решить проблему просто вам нужно 3 команды. Идея этой проблемы заключается в том, что ssh-add необходимо установить переменные окружения SSH_AUTH_SOCK и SSH_AGENT_PID с текущим путем к файлу sock-файла ssh-agent и номером pid.
Это сохранит вывод ssh-agent в файл. Содержание текстового файла будет примерно таким:
Скопируйте что-то вроде "/tmp/ssh-kjmxRb2764/agent.2764" из текстового файла и выполните следующую команду прямо в консоли:
Скопируйте что-то вроде «3044» из текстового файла и выполните следующую команду прямо в консоли:
Теперь, когда переменные среды (SSH_AUTH_SOCK и SSH_AGENT_PID) установлены для текущего сеанса консоли, запустите команду ssh-add, и она не сможет снова подключиться к агенту ssh.
источник
set
наexport
Одна вещь, с которой я столкнулся, заключалась в том
eval
, что у меня не получалось использовать Cygwin, а у меня -ssh-agent ssh-add id_rsa
.После этого я столкнулся с проблемой, что мой закрытый ключ был слишком открытым, решение, которое мне удалось найти для этого ( отсюда ):
а также
наконец я смог использовать:
источник
eval `ssh-agent`
, с обратными чертами`
вокругssh-agent
, как показано в моем ответе ? Это отлично сработало для меня в Cygwin. Похоже, вы правы, чтоssh-agent ssh-add
также работает, по крайней мере, в msysgit Bash. Однако обратите внимание, чтоid_rsa
это ключ по умолчанию, который используется, поэтому вам не нужно указывать его с помощьюssh-agent ssh-add id_rsa
.Чтобы усилить ответ n3o для Windows 7 ...
Моя проблема заключалась в том, что некоторые обязательные переменные среды не были установлены, и n3o правильно, что ssh-agent говорит вам, как установить эти переменные среды, но на самом деле не устанавливает их.
Поскольку Windows не позволяет вам делать «eval», вот что нужно сделать вместо этого:
Перенаправить вывод ssh-agent в командный файл с
Теперь используйте текстовый редактор, например Блокнот, для редактирования файла temp.bat. Для каждой из первых двух строк: - Вставьте слово «set» и пробел в начале строки. - Удалить первую точку с запятой и все, что следует.
Теперь удалите третью строку. Ваш temp.bat должен выглядеть примерно так:
Запустите temp.bat. Это установит переменные окружения, необходимые для работы ssh-add.
источник
Could not open a connection to your authentication agent.
при запуске ssh-add в Win10 PowerShell.Я только что получил это работает. Откройте свой
~/.ssh/config
файл.Добавить следующее-
На странице, которая дала мне подсказку « Настроить SSH для Git», говорилось, что отступ в одном пробеле важен ... хотя у меня была конфигурация от Heroku, которая не имела этого пространства и работает должным образом.
источник
Если вы будете следовать этим инструкциям, ваша проблема будет решена.
Если вы работаете на компьютере Mac или Linux, введите:
Если вы работаете на компьютере с Windows, введите:
источник
Для пользователей окон я обнаружил, что cmd
eval `ssh-agent -s`
не работает, но использование git bash помоглоeval `ssh-agent -s`; ssh-add KEY_LOCATION
и убедился, что служба Windows «Управление ключами OpenSSH» не отключенаисточник
Позвольте мне предложить другое решение. Если вы только что установили Git 1.8.2.2 или около того и хотите включить SSH, следуйте хорошо написанным инструкциям .
Все до шага 5.6, где вы можете столкнуться с небольшим препятствием. Если агент SSH уже запущен, вы можете получить следующее сообщение об ошибке при перезапуске bash
Если вы это сделаете, используйте следующую команду, чтобы увидеть, запущено ли более одного процесса ssh-agent.
Если вы видите более одной службы ssh-agent, вам нужно будет убить все эти процессы. Используйте команду kill следующим образом (PID будет уникальным на вашем компьютере)
Пример:
После удаления всех процессов ssh-agent запустите px aux | Снова выполните команду grep ssh, чтобы убедиться, что они исчезли, затем перезапустите Bash.
Вуаля, теперь вы должны получить что-то вроде этого:
Теперь вы можете перейти к шагу 5.7 и далее.
источник
Это запустит агент SSH и выполнит аутентификацию только в первый раз, когда вам это нужно , а не каждый раз, когда вы открываете свой терминал Bash. Он может быть использован для любой программы, использующей SSH в целом, включая ssh и scp. Просто добавьте это к
/etc/profile.d/ssh-helper.sh
:источник
ps -A | grep ssh-agent
илиps h -C ssh-agent
должен быть использован вместоps | grep ssh-agent
echo ssh-auth | bash
получится.AddKeysToAgent yes
(или используйтеprompt
) в свою конфигурационную запись ssh (используйтеHost *
для всех хостов). Таким образом, вам будет предложено ввести пароль SSH, только если вы на самом деле попытаетесь подключиться, в противном случае вас могут попросить ввести пароль для простогоgit diff
илиgit status
.$HOME/.ssh
может быть более надежным, чем/home/$(whoami)/.ssh
У меня была такая же проблема на
Ubuntu
и другие решения не помогли мне. Я наконец понял, в чем была моя проблема. Я создалssh
ключи в/root/.ssh
папке, поэтому даже когда я запускалсяssh-add
с правами root, он не мог выполнять свою работу и продолжал говоритьЯ создал мои открытые и закрытые ключи SSH в
/home/myUsername/
папке, и я использовалпотом я побежал
и проблема была решена таким образом.
Примечание: для доступа к вашему репозиторию
git
добавьте свой пароль git при созданииssh
ключей с помощьюssh-keygen -t rsa -C "your git email here"
.источник
При подключении к серверу используйте параметр -A, например:
со страницы руководства:
источник
Основное решение для запуска
ssh-agent
ответили во многих ответах. Однакоssh-agent
многократное выполнение (для каждого открытого терминала или для удаленного входа в систему) создаст много копий, неssh-agent
запущенных в памяти. Сценарии, которые предлагаются, чтобы избежать этой проблемы, являются длинными и требуют записи и / или копирования отдельного файла или необходимости записи слишком большого количества строк в~/.profile
или~/.schrc
. Позвольте мне предложить простое двухстрочное решение:Для sh , bash и т.д .:
Для csh , tcsh и т.д .:
Что здесь:
ssh-agent
по имени и по текущему пользователюssh-agent
и запустивssh-agent
себя, если текущий пользовательскийssh-agent
процесс не найденНет необходимости защищать созданный сценарий оболочки
~/.ssh-agent.tcsh
или~/.ssh-agent.sh
доступ других пользователей, потому что: сначала общение сssh-agent
обрабатывается через защищенный сокет, который недоступен для других пользователей, а во вторую очередь другие пользователи могут найтиssh-agent
сокет простым путем перечисления файлов в/tmp/
каталоге. Что касается доступа кssh-agent
процессу, то это одно и то же.источник
Попробуйте следующее:
источник
Прочитайте ответ @ cupcake для объяснений. Здесь я только пытаюсь автоматизировать исправление.
Если вы используете терминал Cygwin с BASH, добавьте следующее в файл $ HOME / .bashrc. Это только запускает ssh-agent один раз в первом терминале Bash и добавляет ключи к ssh-agent. (Не уверен, если это требуется в Linux)
НЕ ЗАБЫВАЙТЕ добавить правильные ключи в команду «ssh-add».
источник
У меня была эта проблема, когда я запускал ssh-agent, когда он уже работал. Смущается. Чтобы увидеть, если это так, используйте
чтобы увидеть, если это так же, как вы думали, это должно быть. В моем случае это было не то, что я только начал.
Чтобы дополнительно проверить, работает ли более одного ssh-агента, вы можете просмотреть:
источник
eval $(ssh-agent)
должен каждый раз создавать нового агента с другим PID, хотя я могу ошибаться.У меня была похожая проблема, когда я пытался заставить это работать на Windows, чтобы соединиться с тайником через ssh
Вот решение, которое сработало для меня.
Оказывается, я запустил Pageant ssh agent на своем компьютере с Windows - я бы проверил, что у вас работает. Я подозреваю, что это Pageant, так как он поставляется по умолчанию с Putty и winScp
Ssh-add не работает из командной строки с этим типом агента
Вам необходимо добавить закрытый ключ через окно пользовательского интерфейса Pageant, которое можно получить, дважды щелкнув значок Pageant на панели задач (после его запуска).
Прежде чем добавить ключ в Pageant, необходимо преобразовать его в формат PPK. Полная инструкция доступна здесь Как конвертировать ключ SSH в формат ppk
Вот и все. После того, как я загрузил свой ключ в хранилище, я смог использовать SourceTree для создания локального репо и клонирования удаленного.
Надеюсь это поможет...
источник
Я исправил ошибку, принудительно остановив (убив) процессы git (агент ssh), затем удалив Git и снова установив Git.
источник
Используя Git Bash на Win8.1E, мое разрешение было следующим:
источник
/dev/null
? Ваш ответ в основном делает то же самое, что и этот .~/.ssh/id_rsa
это ключ по умолчанию, поэтому вам не нужно указыватьssh-add ~/.ssh/id_rsa
, простоssh-add
должен работать.Если вы используете Putty, возможно, вам нужно установить для параметра «Connection / SSH / Auth / Allow agent forwarding» значение «true».
источник
Это сработало для меня.
источник
Для bash, встроенного в Windows 10, я добавил это в .bash_profile:
источник
$(ssh-agent -s)
чтобы установить среду агента.