Я просмотрел несколько документов о том, как подготовиться к использованию Capistrano, и среди них была «аутентификация и авторизация» с веб-сайта Capistrano.
Все шло денди, когда я сделал эту команду
me@localhost $ ssh [email protected] 'hostname; uptime'
но.. когда я сталкиваюсь с этой командой
me@localhost $ ssh -A [email protected] 'git ls-remote [email protected]:team/application.git
у меня ужас
Permission denied (publickey).
Я решил подключиться по ssh к серверу напрямую от имени пользователя развертывания и попробовать свою команду оттуда, но затем меня попросили ввести парольную фразу:
me@localhost:~$ ssh [email protected]
... bunch of logon information ...
deployer@server:~$ git ls-remote [email protected]:team/application.git
Enter passphrase for key '/home/deployer/.ssh/id_rsa':
Я ввел парольную фразу и получил ответ от битбакета. Теперь я не понял, почему меня попросили ввести мою парольную фразу, потому что ssh-агент должен загрузить мою личность, и все должно быть хорошо с развертыванием и битбактом. Я решил проверить, загрузил ли ssh-agent мою личность, запустив
ssh-add -l
но потом я получил
Could not open a connection to your authentication agent.
какие? хорошо, затем я запустил ssh-агент и убедился, что моя личность была загружена, сделав это
deployer@server:~$ eval "$(ssh-agent)"
Agent pid 30113
deployer@server:~$ ssh-add -l
The agent has no identities.
deployer@server:~$ ssh-add
Enter passphrase for /home/deployer/.ssh/id_rsa:
Identity added: /home/deployer/.ssh/id_rsa (/home/deployer/.ssh/id_rsa)
deployer@server:~$ ssh-add -l
2048 6c:87:f9:e1:71:75:0d:1c:cf:8d:d8:a8:06:fc:70:e7 /home/deployer/.ssh/id_rsa (RSA)
и теперь я мог сделать свой удаленный список из битбакета просто отлично, не вводя парольную фразу
deployer@server:~$ git ls-remote [email protected]:team/application.git
f25db5c4691531c8ad27882c74d9668de66f795f HEAD
97a68f4f6cbffd0c320b37891ffdda57931146f4 refs/heads/deployer
f25db5c4691531c8ad27882c74d9668de66f795f refs/heads/master
deployer@server:~$
теперь я был счастлив, вышел из сервера и снова попытался с моей локальной машины
deployer@server:~$ exit
logout
Connection to server.com closed.
me@localhost:~$ ssh [email protected] 'git ls-remote [email protected]:team/application.git'
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
??? В этом и заключается моя проблема... теперь вы видите, где я ошибаюсь?