首页 > 解决方案 > 如何保护我的 SSH 命令到 Laravel 中的远程服务器?

问题描述

我正在使用Laravel 4.2中记录的laravelcollective/remote,但此文档未显示有关此版本的任何信息。6.x

我正在尝试访问我的外部服务器以运行Docker命令:

SSH::into('production')->run(["docker inspect --format='{{.Name}}' {$id}"], function($container) {
    // ...
});

我的配置看起来像这样并且非常基本,尽管它可以工作:

'connections' => [
    'production' => [
        'host'      => 'xx.xx.xxx.x',
        'username'  => 'xxx',
        'password'  => 'xxx',
        'key'       => '',
        'keytext'   => '',
        'keyphrase' => '',
        'agent'     => '',
        'timeout'   => 10,
    ],
],

当我然后使用:

SSH::into('production')->run(['ls'], function($x) { echo $x; });

它工作正常,但这有多安全?我可以看到我缺少 4 个默认字段,我认为这会使这更安全。我怎样才能生成一个,key它们是什么?keytextkeyphrase

标签: phplaravelssh

解决方案


SSH 组件于 2015 年从 Laravel 核心中移除,Laravel Collective 从那时起一直在维护这个组件 - Laravel News 上的文章。这就是为什么您不再在 Laravel 官方文档中找到任何关于此的内容的原因。

当您想使用 ssh 密钥而不是使用用户名和密码登录时,应使用“key”、“keyphrase”和“keytext”字段。

“key”字段包含您的私有 ssh 密钥文件的完整路径。在“keyphrase”字段中,应输入 ssh 密钥的密码(如果存在)。

关于配置选项的文档不是很好——我只是搜索了Github 问题以获取一些信息。

laravelcollective/remote软件包使用phpseclib/phpsecliblib 来创建 SSH 连接。这是一个 PHP 安全通信库,实现 了SSH-2、、、、任意精度整数算术库,...等等。所以这个关于安全连接的问题应该在那里更好地提出。;-) 我会说,是的,它是一个安全的加密连接。SFTPX.509


推荐阅读