Token导航 LogoToken导航TokenDH.com
效率需要联网clawhub未标认证来源可访问clear审计提醒

rssh2rssh2 自动化

Agent Skill

rssh2 用于补充效率相关能力,适合在 OpenClaw 中需要让 Agent 承接效率相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

15,029

周安装

639

GitHub Stars

公开资料未说明

下载量

5,265
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:rssh2(rssh2 自动化)
来源仓库:https://github.com/ykaixu/rssh2
安装命令:
openclaw skills install rssh2
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install rssh2

简介

SSH远程自动化工具 - 会话管理、隧道、文件传输。使用场景:需要远程执行命令、建立SSH隧道、传输文件时。

SKILL.md

name
rssh2
description
SSH远程自动化工具 - 会话管理、隧道、文件传输。使用场景:需要远程执行命令、建立SSH隧道、传输文件时。
metadata
{"clawdbot":{"emoji":"🔐","requires":{"bins":[]},"dependencies":["ssh2"]}}

Rssh2 - SSH远程自动化工具

基于 ssh2 的 SSH 远程自动化工具,提供会话管理、隧道管理、文件传输等功能。

⚠️ 安全提示

重要: 请勿在代码中硬编码敏感信息(密码、私钥内容等)。建议:

  • 使用环境变量存储敏感配置
  • 使用密钥文件路径而非密钥内容
  • 将 test.js 中的配置替换为实际配置后再运行

功能特性

🔐 会话管理

  • 连接池管理(复用连接,提升性能)
  • 自动重连机制
  • 心跳保持
  • 命令队列
  • 并发控制

🌉 隧道管理

  • 本地端口转发
  • 远程端口转发
  • 动态端口转发(SOCKS代理)
  • 多隧道管理
  • 自动重连

📁 文件传输

  • SFTP 上传/下载
  • 目录同步
  • 文件监控
  • 断点续传

⚙️ 配置管理

  • 多主机配置
  • 密钥管理
  • 环境变量支持
  • 配置文件热加载

快速开始

基本连接

const { Rssh2 } = require('./index.js');

const rssh2 = new Rssh2({
  host: 'bg.dlna.net',
  port: 38022,
  username: 'root',
  privateKey: '/home/yupeng/.ssh/id_ed25519'
});

// 执行命令
const result = await rssh2.exec('uptime');
console.log(result.output);

会话管理

// 创建会话管理器
const sessionManager = rssh2.getSessionManager();

// 执行多个命令(复用连接)
const results = await Promise.all([
  sessionManager.exec('uptime'),
  sessionManager.exec('df -h'),
  sessionManager.exec('free -m')
]);

// 关闭会话
await sessionManager.close();

隧道管理

// 本地端口转发
const tunnel = await rssh2.tunnel.local({
  localPort: 8080,
  remoteHost: 'localhost',
  remotePort: 80
});

console.log('隧道已建立: localhost:8080 -> remote:80');

// 关闭隧道
await tunnel.close();

文件传输

// 上传文件
await rssh2.sftp.upload('./local.txt', '/remote/path/file.txt');

// 下载文件
await rssh2.sftp.download('/remote/path/file.txt', './local.txt');

// 同步目录
await rssh2.sftp.sync('./local-dir', '/remote/dir');

配置选项

连接配置

{
  host: 'example.com',        // 主机地址
  port: 22,                   // SSH端口
  username: 'user',           // 用户名
  password: 'pass',           // 密码(可选)
  privateKey: '/path/to/key', // 私钥路径(可选)
  passphrase: 'keypass',      // 私钥密码(可选)
  timeout: 10000,             // 连接超时(毫秒)
  keepaliveInterval: 30000    // 心跳间隔(毫秒)
}

会话管理器配置

{
  maxPoolSize: 5,             // 最大连接池大小
  maxConcurrent: 10,          // 最大并发命令数
  commandTimeout: 30000,      // 命令超时(毫秒)
  retryAttempts: 3,           // 重试次数
  retryDelay: 1000            // 重试延迟(毫秒)
}

隧道配置

{
  localPort: 8080,            // 本地端口
  remoteHost: 'localhost',    // 远程主机
  remotePort: 80,             // 远程端口
  autoReconnect: true,        // 自动重连
  reconnectDelay: 5000        // 重连延迟(毫秒)
}

API 参考

Rssh2 主类

constructor(config)

创建 Rssh2 实例

exec(command, options?)

执行单个命令

getSessionManager()

获取会话管理器实例

getTunnelManager()

获取隧道管理器实例

getSftpManager()

获取 SFTP 管理器实例

connect()

建立连接

disconnect()

断开连接

SessionManager

exec(command, options?)

执行命令(使用连接池)

execMultiple(commands)

执行多个命令

close()

关闭所有连接

TunnelManager

local(config)

创建本地端口转发

remote(config)

创建远程端口转发

dynamic(config)

创建动态端口转发(SOCKS)

closeAll()

关闭所有隧道

SftpManager

upload(localPath, remotePath)

上传文件

download(remotePath, localPath)

下载文件

sync(localDir, remoteDir)

同步目录

list(path)

列出文件

delete(path)

删除文件

使用场景

1. 远程运维

const rssh2 = new Rssh2(config);

// 检查服务状态
const status = await rssh2.exec('systemctl status nginx');

// 重启服务
await rssh2.exec('systemctl restart nginx');

// 查看日志
const logs = await rssh2.exec('tail -n 100 /var/log/nginx/access.log');

2. 数据库隧道

// 创建数据库隧道
const tunnel = await rssh2.tunnel.local({
  localPort: 3306,
  remoteHost: 'localhost',
  remotePort: 3306
});

// 现在可以通过 localhost:3306 访问远程数据库

3. 文件部署

// 上传应用文件
await rssh2.sftp.upload('./app.zip', '/tmp/app.zip');

// 解压
await rssh2.exec('cd /var/www && unzip -o /tmp/app.zip');

// 重启服务
await rssh2.exec('systemctl restart app');

4. 批量操作

const session = rssh2.getSessionManager();

// 并发执行多个命令
const results = await session.execMultiple([
  'uptime',
  'df -h',
  'free -m',
  'ps aux | head -20'
]);

console.log(results);

安全建议

  1. 使用密钥认证 - 比密码更安全
  2. 限制用户权限 - 不要使用 root 账号
  3. 启用防火墙 - 限制 SSH 访问
  4. 定期更新密钥 - 轮换 SSH 密钥
  5. 日志审计 - 记录所有操作

故障排查

连接失败

try {
  await rssh2.connect();
} catch (error) {
  console.error('连接失败:', error.message);
  // 检查主机、端口、认证信息
}

命令超时

const result = await rssh2.exec('long-running-command', {
  timeout: 60000  // 60秒超时
});

隧道断开

const tunnel = await rssh2.tunnel.local(config, {
  autoReconnect: true,
  reconnectDelay: 5000
});

依赖

  • ssh2 ^1.17.0

许可证

MIT

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

85.57%
按下载量换算4,505

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

未展示

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills