2016-07-07 6 views
0

私はCapistrano 3.3.5(net-ssh 3.2.0と一緒に)を使ってDrupalアプリケーションをデプロイしようとしています。私の展開ワークステーションはgit-bashを実行しているWindowsです。私もssh-agentを起動し、私の秘密鍵のためにssh-addを実行しました。Capistrano git:wrapperがsshパスフレーズを要求し続ける

> 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 

回のカップルを返す打った後、私はドライ実行ログを得ました。最初の数行は、このように見えた:

set :ssh_options, {:forward_agent => true} 

変更なし:

$ 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文を追加するように調整しました。

私はcapistrano 3.5.0にアップグレードし、capistrano-statsをアンストールし、バージョンを3.5.0にロックしました。

> cap development deploy --dry-run 

私が得た:wrapperタスク面倒かもしれません:

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 

これはGitがいることを教えてくれました。それから私は走った:

> 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 

は、この時点では、gitのようになります:wrapperタスクが動作していないとステップ2は、このたStringIOを持っているので、それは次のようになります事、それで、実際のBashコマンドの代わりにRubyのオブジェクトIDのように見えます。それとも別のものかもしれない。

これを回避する方法はありますか。私の配置で誤って自分のパスワードを入力しないようにしていますか?

答えて

0

展開時に鍵のパスフレーズが要求されないように、SSHエージェントを設定する必要があります。

カピストラーノのドキュメントは、これを行うの詳細を持っている:http://capistranorb.com/documentation/getting-started/authentication-and-authorisation/

のようなものに見えるかもしれませんショートバージョン:

実行:この時点で

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

私が問題の2行目で言ったように、私はそれを行い、それでも動作しませんでした。 –

+0

パスワードを尋ねられた場合、実際に動作しているsshエージェントはありません。それで、私はあなたがWindowsを使っていることを見落としていました。私の考えでは、すべてのベットはそのOS上で行われていないので、何が問題なのか分かりません。 –

+0

それは良くなる。私はLinux上で実行し、それは働いた。 :( –

関連する問題