2016-07-07 8 views
0

Я пытаюсь развернуть приложение Drupal с помощью Capistrano 3.3.5 (вместе с net-ssh 3.2.0). Моя рабочая станция для развертывания - это Windows, запускающая git-bash. Я также запустил ssh-agent и запустил ssh-add для своего закрытого ключа.Capistrano git: wrapper продолжает запрашивать sph passphrase

Тогда я побежал:

> cap development deploy 

И попросил у меня пароль для моего секретного ключа.

Enter passphrase for C:/Users/jgodse/.ssh/id_rsa: my_password 

Когда я набрал «my_password» в качестве пароля для пароля SSH, он повесил трубку. Я сделал CTRL-C, а затем сказал:

bash: my_password: command not found 

Тогда я попробовал:

> cap development --dry-run 

После удара вернуться пару раз, я получил журнал всухую. Первые несколько строк выглядит следующим образом:

$ cap development deploy --dry-run 
There was a problem tracking statistics, please report to  https://github.com/capistrano/stats 

INFO [4b085395] Running /usr/bin/env mkdir -p /tmp/myapp/ as [email protected] 
DEBUG [4b085395] Command: /usr/bin/env mkdir -p /tmp/myapp/ 
INFO [b5f607a2] Running /usr/bin/env #<StringIO:0x3b9e4d0> /tmp/myapp/git-ssh.sh as [email protected] 
DEBUG [b5f607a2] Command: /usr/bin/env #<StringIO:0x3b9e4d0> /tmp/myapp/git-ssh.sh 
INFO [c0895cc9] Running /usr/bin/env chmod +x /tmp/myapp/git-ssh.sh as [email protected] 

Тогда я поправил Capfile добавить заявление:

set :ssh_options, {:forward_agent => true} 

Без изменений.

Затем я обновился до capistrano 3.5.0 и не установил capistrano-статистику и заблокировал версию до 3.5.0.

> cap development deploy --dry-run 

я получил:

00:00 git:wrapper 
     01 mkdir -p /tmp/myapp/ 
     02 #<StringIO:0x28c7238> /tmp/myapp/git-ssh.sh 
     03 chmod +rx /tmp/myapp/git-ssh.sh 

Это сказал мне, что мерзавец: задача обертка может быть хлопотно. Тогда я побежал:

> cap development git:wrapper 

я получил:

00:00 git:wrapper 
     01 mkdir -p /tmp/myapp/ 
Enter passphrase for C:/Users/me/.ssh/id_rsa: 

я получил тот же результат, как и раньше, когда я ввел пароль. Тогда я сделал:

> cap development git:wrapper --dry-run 

я получил:

00:00 git:wrapper 
     01 mkdir -p /tmp/myapp/ 
     02 #<StringIO:0x28e2448> /tmp/myapp/git-ssh.sh 
     03 chmod +rx /tmp/myapp/git-ssh.sh 

На данный момент это выглядит как мерзавец: задачи обертки не работает, и это может быть потому, что шаг 2 имеет этот StringIO: вещь в нем, который выглядит как идентификатор объекта Ruby вместо фактической команды Bash. Или это может быть что-то другое.

Есть ли способ обойти это, чтобы мое развертывание не ошибочно просило меня ввести пароль?

ответ

0

Возможно, вам потребуется настроить агента SSH, чтобы кодовая фраза вашего ключа не запрашивалась при развертывании.

документация Capistrano имеет подробности как это сделать: http://capistranorb.com/documentation/getting-started/authentication-and-authorisation/

Короткая версия может выглядеть примерно так:

Run:

eval "$(ssh-agent -s)" 
ssh-add 
# It'll prompt you for your password here. 
cap dev deploy # Or whatever you run to execute Capistrano. 

На данный момент, вы должны быть в состоянии работать Capistrano в этой оболочке, не запрашивая пароль.

Если это полезно, вы можете захотеть узнать, как настроить оболочку для совместного использования сеанса ssh-agent между терминалами.

+0

Как я уже сказал во второй строке проблемы, я сделал это, и это все еще не сработало. –

+0

Если он запрашивает ваш пароль, у вас нет агента ssh, который действительно работает. С учетом сказанного я упустил из виду, что вы используете Windows. На мой взгляд, все ставки отключены на этой ОС, поэтому я понятия не имею, в чем проблема. –

+0

Все становится лучше. Я запускал его на Linux, и это сработало. :( –