2017-04-07 19 views
1

我使用两个相同的用于测试capistrano部署过程的相同流浪盒。我可以成功地将应用程序从dev框部署到prod框。但是,我无法摆脱密码确认。在流浪环境中摆脱mkdir命令的capistrano密码确认

据我可以看到从输出,确认发生在部署过程试图运行mkdir -p /capistrano/tmp如下所示。

$ bundle exec cap production deploy --trace 
** Invoke production (first_time) 
** Execute production 
** Invoke load:defaults (first_time) 
** Execute load:defaults 
** Invoke deploy (first_time) 
** Execute deploy 
** Invoke deploy:starting (first_time) 
** Execute deploy:starting 
** Invoke deploy:check (first_time) 
** Invoke git:check (first_time) 
** Invoke git:wrapper (first_time) 
** Execute git:wrapper 
00:00 git:wrapper 
     01 mkdir -p /capistrano/tmp 
[email protected]'s password: 

prod服务器上的当前权限如下(我已经如所描述的手动scp: /tmp/git-ssh.sh: Permission denied授予777):

[email protected]:~$ ls -l/
drwxrwxrwx 3 vagrant vagrant 4096 Apr 7 16:30 capistrano 

[email protected]:~$ ls -l /capistrano/ 
drwxrwxrwx 2 vagrant vagrant 4096 Apr 7 16:33 tmp 

然后,当我键入密码,它下/capistrano/tmp/路径创建git-ssh-football-production-vagrant.sh

[email protected]:~$ ls -l /capistrano/tmp/ 
-rwx------ 1 vagrant vagrant 93 Apr 7 16:33 git-ssh-football-production-vagrant.sh 

我已经删除/创建/使用不同的文件夹有777个权限游民用户,并试图www-data很好,但无法摆脱密码确认。

deploy.rb

... 
set :tmp_dir, "/capistrano/tmp" 
set :user, "vagrant" 
... 

production.rb

​​

回答

0

找到了解决办法。我所要做的只是使用下面的命令将dev服务器的公钥添加到prod服务器的authorized_keys

$ cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> /home/vagrant/.ssh/authorized_keys'