2015-10-13 2 views
3

У меня есть следующий скрипт развертывания, созданный с Capistrano v3 и capistrano/symfony gem. Я развертываю экземпляр AWS EC2 с Ubuntu 14.4 Я подключаюсь к файлу .pem, загруженному с AWS. У меня есть следующий в моем deploy.rbРазвертывание Capistrano 3 не удается подключиться к GitHub - Permission denied (publickey)

set :pty, true 

set :ssh_options, { 
    user: 'ubuntu', 
    keys: ['/Users/myuser/Sites/Myproject.pem'], 
    forward_agent: true, 
    auth_methods: ["publickey"] 
} 

при развертывании с

bundle exec cap staging deploy --trace 

Сценарий соединяет отлично, но терпит неудачу на этом

INFO [4fd1b02c] Running /usr/bin/env git ls-remote --heads [email protected]:MyName/Myproject.git as [email protected] 
DEBUG [4fd1b02c] Command: (SYMFONY_ENV=prod GIT_ASKPASS=/bin/echo GIT_SSH=/var/www/tmp/myproject/git-ssh.sh /usr/bin/env git ls-remote --heads [email protected]:MyName/Myproject.git) 

DEBUG [4fd1b02c] Permission denied (publickey). 
DEBUG [4fd1b02c]  
DEBUG [4fd1b02c] fatal: Could not read from remote repository. 
DEBUG [4fd1b02c]  
DEBUG [4fd1b02c]  
DEBUG [4fd1b02c] Please make sure you have the correct access rights 
DEBUG [4fd1b02c]  
DEBUG [4fd1b02c] and the repository exists. 
DEBUG [4fd1b02c] 

cap aborted! 
SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: git exit status: 128 
git stdout: Permission denied (publickey). 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 
git stderr: Nothing written 

Я не знаю, почему forward_agent не за работой?

Я пытался следовать этому руководству - https://developer.github.com/guides/using-ssh-agent-forwarding/#testing-ssh-agent-forwarding

, но когда я добираюсь до этого

echo "$SSH_AUTH_SOCK" 

Он печатает пустую строку.

Кроме того, если я бегу это на сервере он говорит команда не найдена

sshd_config 
+0

У меня теперь есть другие сообщения об ошибках во время развертывания, для которых я задал новый вопрос для - http: // stackoverflow.com/questions/33128623/capistrano-3-deploy-failed-messages-exit-status-1-failed – Patrick

ответ

4

Дважды проверьте, что пользователь работает Capistrano имеет ssh-agent работает и имеет ssh-add ред соответствующий ключ.

Вот некоторые хорошие гиды:

https://developer.github.com/guides/using-ssh-agent-forwarding/

http://mah.everybody.org/docs/ssh

+0

Спасибо, как мне это сделать? и каков соответствующий ключ? Я смущен betwen .pem, который я использую для ssh в EC2, и ключ, который мне нужно подключить к GitHub. – Patrick

+0

Я обновил ответ. Ключевым вопросом здесь является ваш ключ GitHub. Предполагая, что вы используете Mac или Linux, он живет в '~/.ssh/id_dsa' или' ~/.ssh/id_rsa'. –

+1

Я сделал это и запустил 'ssh -T git @ github.com' и получил сообщение об успешном завершении, но все равно получаю сообщение об ошибке открытого ключа при развертывании, например, не пересылает его. – Patrick

2

решение моей проблемы было две вещи. Во-первых, я должен был направить свой id_rsa в сценарии, как это:

set :ssh_options, { 
    user: 'ubuntu', 
    keys: ['~/.ssh/id_rsa'], 
    forward_agent: true, 
    auth_methods: ["publickey"] 
} 

Я положил ключ id_rsa.pub на сервере, так что я мог бы SSH на сервер с тем же ключом, как я был экспедиторских.

Вторая вещь, которую я должен был сделать установить разрешения на/TMP с помощью

chmod 1777 /tmp 
1

я столкнулась с аналогичной проблемой во хребтовой перспективе «$ bundle exec cap test deploy»

Error : 
git stdout: Nothing written 
git stderr: Warning: Permanently added the RSA host key for IP address 'xxxxxxxxx' to the list of known hosts. 
Permission denied (publickey). 
fatal: Could not read from remote repository. 

Для этого сценария мы необходимо аутентифицировать учетную запись github с помощью ключа ssh

Перейти к github -> Настройки -> SSH и GPG ключи (раздел) -> Добавить «Новый ключ SSh», скопировать свою публикацию ($ ssh-keygen #generate new key)) и вставьте поле ввода ключа. После добавления ключа, используя эту команду «$ ssh -T [email protected]», проверьте аутентификацию. Он отобразит следующий результат:

Hi <xxxxxxxx>! You've successfully authenticated, but GitHub does not provide shell access. 

Теперь он работает отлично !.

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