0

我正在通过 Capifony 将 Symfony 2 应用程序部署到 Debian 服务器。该应用程序的主存储库是私有的,但我还通过 composer install 包括了一些私有存储库。这导致了问题。

主存储库克隆得很好。我有公钥设置、带有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 设置。

4

2 回答 2

0

作为一种解决方法,我猜您应该使用无密码密钥进行部署。您可以将其设置为 github 上的部署密钥或创建一个新帐户,该帐户对您需要的少数存储库具有只读访问权限。这样,您就可以获得便利,而不会因丢失该密钥而带来太大风险。

现在对于一个适当的解决方案,我不确定需要什么。您可以在 composer 上打开一个问题,我们在那里进一步讨论。基本上问题是作曲家使用普通的 git clone 命令,没什么特别的,我想 capifony 在初始项目结帐时会做一些特殊的事情来解锁密钥。

于 2012-07-13T08:41:31.430 回答
0

Capistrano/capifony 实时处理输出。如果 Git 提示输入密码,它会自动提供用户的密码,与密码短语相同。这是 Capistrano 的一部分,您可以在 Capistrano 的 Git 类中看到:https ://github.com/capistrano/capistrano/blob/master/lib/capistrano/recipes/deploy/scm/git.rb#L255 。

我认为您可以使用无密码策略,也可以使用 ssh-agent。

于 2012-07-13T08:57:01.307 回答