2014-02-03 2 views
22

Мне сложно настроить Capistrano 3.1 для развертывания приложения, размещенного в Github.Переадресация агента SSH Не работает

Я следую Capistrano Documentation и я успешно завершен первый этап (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 Docs предлагает

Если вы получили сообщение об ошибке «проверка ключа хоста не удалась». войдите в свой сервер и запустите в качестве пользователя развертывания команду ssh [email protected], чтобы добавить 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

Спасибо.

ответ

6

Добавьте следующее в ~/.ssh/конфигурации

Host one-of-my-servers.com 
    ForwardAgent yes 
+0

Спасибо за ваш ответ. К сожалению, я забыл упомянуть, что я добавил его уже '' 'Host 111.222.222.44:24566 ForwardAgent yes''' – macsig

63

ли вы ключ 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 для получения дополнительной информации

+0

Это решило мою проблему! Благодаря! Если бы это был мой вопрос, я бы принял ваш ответ. – Andrew

+1

Спасибо, это сработало! возможно ли, что я получал эти проблемы, потому что я копировал файлы с ключами вместо их создания с помощью команд bash? – pastullo

+0

Это работает для меня! Благодаря! – AntonAL

0

Если у вас добавьте ключ ssh и затем закройте терминал, вы должны снова добавить его снова при следующем открытии терминала.

16

Добавить следующие строки в .ssh/конфигурационный файл на локальном компьютере

Host Server_Address 
    ForwardAgent yes 

Проверьте свой местный ключ ли перечисленные в SSH-добавить список или нет с

ssh-add -L 

Если не добавить ключ SSH Агент

ssh-add -K 

Подключение к удаленному серверу

ssh -v [email protected]_Address 

Проверка пересылки агента SSH активируется при выполнении следующей команды. Он должен перечислить файла сокета

echo "$SSH_AUTH_SOCK" 

тест соединения Run против GitHub

ssh -T [email protected] 

Run LS удаленная проверка на целевой репозиторий

git ls-remote --heads [email protected]:account/repo.git 

Наконец выйти и запустить следующие из локальной машины

cap production git:check 
+1

Хороший подробный ответ! благодаря – scaryguy

Смежные вопросы