опитвам се да разположа с помощта на Capistrano, но ssh-agent на моята отдалечена машина не поддържа самоличността ми заредена, така че командата git е неуспешна; защо?

Прегледах няколко документации за това как да се подготвя за използване на 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':

Въведох паролата и получих отговор от bitbucket. Сега не разбрах защо ме помолиха за моята парола, тъй като ssh-агентът трябва да е заредил самоличността ми и всичко трябва да е наред с deployer и bitbuckt. Реших да проверя дали 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)

и сега мога да правя отдалечения си списък от bitbucket добре, без да се налага да въвеждам паролата си

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

??? Там е моят проблем... сега виждате ли къде греша?


person bjorgvin    schedule 26.09.2013    source източник


Отговори (1)


Можете да влезете веднъж, за да стартирате ssh-агента и да заредите вашите ключове (ssh-add) в агента. Запазете изхода на ssh-agent в някакъв файл.

Когато влизате дистанционно за целите на git, задайте SSH_AUTH_SOCK и SSH_AGENT_PID чрез вашия bashrc или друг скрипт за стартиране, като използвате запазената информация. Не искате нов ssh-агент. Трябва да посочите същия, който вече има ключовете.

person Rajesh Mohan    schedule 27.09.2013
comment
добре, мога да видя, ако направя 'pidof ssh-agent', много от тях работят :) хубаво. и сега ще се опитам да разбера как да настроя SSH_AUTH_SOCK и SSH_AGENT_PID. благодаря ... Ще маркирам това като правилния отговор, когато накарам това да работи :) - person bjorgvin; 27.09.2013
comment
намери хубаво решение на проблема @ superuser.com/questions/141044/ скриптът е в git repo github.com/intuited/sshag - person bjorgvin; 27.09.2013
comment
добре... Мога да използвам дадения скрипт, за да настроя агента. но сега трябва да дам моята парола за ssh на моя сървър като внедрител ?? така че сега, когато правя ssh -a [email protected] 'sshag', трябва да дам моята парола и командата sshag не се знае ?? той е в .bashrc и когато направя ssh към сървъра и след това стартирам sshag, работи добре?? - person bjorgvin; 27.09.2013