【发布时间】:2018-11-01 00:24:24
【问题描述】:
我正在管理一个由多台服务器组成的网络,并希望使用 SSH 密钥与服务器连接。我发现我们可以在 Laravel 的 remote.php 配置文件中提供 SSH 密钥的路径,如下所示:
.
.
'key' => '/path/to/ssh/key'
.
.
但由于我想连接许多服务器,我无法为所有服务器设置单个私钥,因为它不安全。所以,我唯一能想到的就是动态设置 SSH 密钥。到目前为止,我使用密码登录,我可以使用 Config::set(); 动态设置,但我不知道如何动态设置 SSH 密钥。
在这种情况下,我们也可以使用Config::set();,但是那样,我必须将所有 SSH 密钥存储在具有服务器身份的特定目录中。但是,我想将 SSH 密钥保存在数据库中,因为它更稳定且便于备份。
我还考虑在连接到服务器之前使用服务器的 SSH 密钥更新 SSH 密钥文件,但它会产生我不想要的开销,因为它会减慢连接速度,因为它会在每次与远程连接时写入 SSH 密钥文件通过 SSH 连接服务器。
有什么方法可以将 SSH 密钥存储在数据库中并进行动态设置?
【问题讨论】:
-
1) laravel 默认没有
config/remote.php2) 你能否展示一些示例代码来说明如何确定要设置哪个 ssh 密钥? 3)您还可以将任何相关(包括尚未工作的)代码附加到帖子中吗? -
1.我知道 laravel 默认不提供
config/remote.php。我正在使用 laravelcollective 的远程包来处理我的所有连接。我想像设置密码一样设置 SSH 密钥。我不想定义 SSH 密钥的路径,但我想将 SSH 密钥内容直接放入 remote.php 中的key指令中。这样,我可以直接从数据库中动态设置 SSH 密钥。 -
我没有代码,因为这里缺少逻辑,没有逻辑,我们显然无法编写代码。但是,我可以通过在配置中定义 SSH 密钥文件来连接,但我不想每次尝试与服务器连接时都使用新密钥更新 SSH 密钥文件。
-
好的,现在输入一个大答案,等一下:)
-
@p01ymath 老实说,从来没有在我的项目中使用这个包,但是在阅读了一些代码之后,我认为你的场景是可能的。
keytextconfig 是您所缺少的。值得一读的源代码github.com/LaravelCollective/remote/blob/5.5/config/…和github.com/LaravelCollective/remote/blob/5.5/src/…
标签: php laravel ssh laravel-5.5