You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel8中laravelcollective/remote能否创建动态SSH连接并自定义端口

问题解答

  1. 关于是否可以无需维护config/remote.php,直接用数据库读取的配置创建SSH连接:
    可以,laravelcollective/remote提供的SSH::connect()方法本身就支持传入自定义配置数组创建连接,完全不需要依赖静态配置文件,符合你动态管理站点SSH凭证的需求。

  2. 关于自定义SSH端口的设置方法:
    你只需要在构造的配置数组中新增port字段,传入你服务器对应的SSH端口即可,扩展包底层会自动读取该配置覆盖默认的22端口,示例代码如下:

// 从数据库读取SSH凭证后组装配置数组
$config = [
    'host' => '123.123.123.123',
    'port' => 22345, // 此处填写你的自定义SSH端口
    'username' => 'the-user',
    'password' => 'a-password',
    // 若使用密钥认证,可替换为以下配置
    // 'key' => '/path/to/private/key',
    // 'keyphrase' => 'your-key-passphrase', // 密钥无口令可省略该字段
    // 'timeout' => 20, // 可选自定义连接超时时间,单位秒
];

SSH::connect($config)->run([
    'cd /var/www',
    'git pull origin master'
], function($line) {
    echo $line.PHP_EOL;
});

补充建议

  • 存储在数据库中的SSH凭证建议使用Laravel自带的加密功能做加密存储,读取配置时再解密,避免凭证泄露风险。
  • 如果需要对同一个服务器多次执行命令,可以将SSH::connect($config)返回的连接实例暂存复用,减少重复握手的性能开销。

内容的提问来源于stack exchange,提问作者ThurstonLevi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:57:03