Capistrano 和 Rocketeer 在私钥密码方面的区别在哪里?

我已经正确设置了 Capistrano 和 Rocketeer 部署策略并且可以正常工作。 Capistrano 让 ssh-agent 提供密码 - Rocketeer,看起来,没有。问题不在于如何,而是为什么需要密码。

背景:

我想使用 Rocketeer用于部署 Laravel 应用程序而不是 Capistrano。似乎它将 SSH 连接委托(delegate)给 Laravel。

在配置中仅设置远程服务器的名称并运行检查后,在提示输入凭据后,Rocketeer 将所需的密码和我所需私钥的路径存储在非版本控制的文件中。

我不想将用于建立 SSH 连接的凭据存储在我的磁盘上——尤其是 不是 我的任何私钥的密码。

那么,为什么除了需要服务器名称之外还有其他内容?

我看到 Laravel 在其远程配置中准备了这些字段 - 我只是无法找出最终负责的组件以及为什么它没有将 SSH 连接完全留给系统本身。

火箭人 , Laravel , Symfony , phpseclib 甚至 php 它本身需要那么多信息来建立 SSH 连接?

请您参考如下方法:

这是 Laravel 缺少 phpseclib 的 ssh-agent 的实现,它需要很多信息来建立 SSH 连接。

这就是为什么 Rocketeer 不允许像 Capistrano 那样依赖用户名/密码和私钥/密码验证旁边的 ssh-agent。

提案是 statedmerged包括 phpseclib 的 undocumented implementation for using the ssh-agent而不是显式 key 。

Rocketeer 将从中受益,因为它依赖于 Laravel 中 phpseclib 的上述实现。

(感谢@hannesvdvreken、@ThomasPayer 和@passioncoder 指出正确的方向)


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!