我正在通过Capifony将Symfony 2应用程序部署到Debian服务器。该应用程序的主存储库是私有的,但我还通过作曲家安装包括一些私有存储库。这导致了问题。
主存储库克隆就好了。我有公钥设置,带scm:passphrase:
定义的密码设置和以下行,以启用密码的自动输入:
default_run_options[:pty] = true
当我安装供应商时,项目所需的私有存储库需要密码 - 因为我已经拥有允许连接到我的存储库的私钥/公钥。它返回以下内容:
** [out :: 106.187.50.216] Cloning master
** [out :: 106.187.50.216] Enter passphrase for key '/home/deploy/.ssh/id_rsa':
当出现此消息时,我无法输入任何密码,因为它只是out
。虽然它会共享密码,但似乎composer.phar install
不使用相同的Capifony设置。
答案 0 :(得分:0)
作为一种解决方法,您应该使用无密码密钥进行部署。您可以将其设置为github上的部署密钥,或者创建一个新帐户,该帐户只能访问您需要的少量存储库。通过这种方式,您可以获得方便,而不会因丢失该密钥而承担太多风险。
现在要找到合适的解决方案,我不确定需要什么。您可以打开issue on composer,我们会在那里进一步讨论。基本上问题是作曲家使用普通的git clone命令,没有什么特别的,我想capifony在初始项目结账时会解锁密钥。
答案 1 :(得分:0)
Capistrano / capifony实时处理输出。如果Git提示输入密码,它将自动提供用户密码,与密码相同。这是Capistrano的一部分,你可以在Capistrano的Git类中看到:https://github.com/capistrano/capistrano/blob/master/lib/capistrano/recipes/deploy/scm/git.rb#L255。
我认为您可以使用无密码策略,也可以使用ssh-agent。