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

Переадресация агента 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

Спасибо.

4b9b3361

Ответ 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 и затем закройте терминал, вам придется повторно добавить его снова при следующем открытии терминала.