Переадресация агента SSH не работает
Мне сложно настроить Capistrano 3.1 для развертывания приложения, размещенного в Github.
Я следую Документации Capistrano, и я успешно завершил первый шаг (SSH-ключи с рабочей станции на серверы) и на второй (от наших серверов до хост репозитория) Я могу успешно запустить ssh -A [email protected] 'git ls-remote [email protected]:my_user/my_repo.git'
:
18f38afz261df35d462f7f4e2ca847d22f148a06 HEAD
18f38afz261df35d462f7f4e2ca847d22f148a06 refs/heads/master
однако ssh [email protected] 'git ls-remote [email protected]:my_user/my_repo.git'
не выполняется:
Permission denied (publickey).
Документы Capistrano предлагают
Если вы получите сообщение об ошибке "проверка ключа хоста не удалась". войдите в свой сервер и запустите в качестве пользователя развертывания команду ssh git @github.com, чтобы добавить github.com в список известных хостов.
SO, я пробовал, но я получаю
ssh [email protected]
Warning: Permanently added the RSA host key for IP address '192.30.252.131' to the list of known hosts.
Permission denied (publickey).
И я в основном не могу успешно получить доступ к репозиторию Github.
В документации SSH указано:
-A Enables forwarding of the authentication agent connection. This
can also be specified on a per-host basis in a configuration
file.
Как я могу указать для каждого узла в файле конфигурации?
На моей локальной машине работает Mac OSX Mavericks.
VPS запускает Ubuntu 12.04
Спасибо.
Ответы
Ответ 1
У вас есть ваш ключ ssh, добавленный в список идентификаторов агентов?
Вы можете проверить с помощью ssh-add -L
, вы должны увидеть ключ, который вы используете для подключения к github:
$ ssh-add -L
ssh-rsa AAAAB3N.....0VmSiRvTzBrbU0ww== /Users/youruser/.ssh/id_rsa
Если вы не видите ключ ssh, который вы используете для github или сообщение типа
Агент не имеет идентификаторов.
Затем вы должны добавить свой ключ:
ssh-add ~/.ssh/id_rsa
(замените путь на ключ, который вы используете для github)
Подробнее о ssh-add doc для получения дополнительной информации
Ответ 2
Добавьте следующие строки в файл .ssh/config на локальном компьютере
Host Server_Address
ForwardAgent yes
Проверьте свой локальный ключ, указав его в списке ssh-add или не используя
ssh-add -L
Если не добавить ключ к агенту SSH
ssh-add -K
Подключение к удаленному серверу
ssh -v [email protected]_Address
Проверять пересылку агента SSH можно, выполнив следующую команду. Он должен указать файл сокета
echo "$SSH_AUTH_SOCK"
Запустите тест соединения с GitHub
ssh -T [email protected]
Выполнить удаленный тест ls против целевого хранилища git
git ls-remote --heads [email protected]:account/repo.git
Наконец, выйдите из системы и выполните следующую команду с вашей локальной машины
cap production git:check
Ответ 3
Добавьте следующее в ~/.ssh/config
Host one-of-my-servers.com
ForwardAgent yes
Ответ 4
Если вы добавите ключ ssh и затем закройте терминал, вам придется повторно добавить его снова при следующем открытии терминала.