3 个版本 (破坏性更新)

0.3.0 2023 年 3 月 11 日
0.2.0 2023 年 3 月 1 日
0.1.0 2023 年 2 月 25 日

#66#运行命令

Download history 10/week @ 2024-04-03

每月 1,323 次下载

MIT/Apache

57KB
1.5K SLoC

REmote CoMmanD Executor

recmd 是一个简单的工具,可用于在远程主机上执行命令。

构建

cargo build --release

使用 Docker 构建,或者进行静态构建,请参阅 此处

用法

在必须执行命令的远程主机上,以服务器模式运行 recmd

remcd srv -p 22000

如果您希望以后台模式运行服务器,可以使用选项 -d

remcd srv -p 22000 -d

以上命令中,recmd 将监听端口 22000(TCP)以接收命令请求。

要发送命令请求,以发送模式运行 recmd(将 1.2.3.4 替换为运行服务器的宿主机的 IP 地址)

recmd snd -a 1.2.3.4 -p 22000 -c "bash -c 'ls /etc > /tmp/out'"
recmd snd -a 1.2.3.4 -p 22000 -c "bash -c 'cat /tmp/out'"

加密密钥

客户端和服务器之间的通信使用 ChaCha20-Poly1305 加密和认证。 recmd 使用在 src/config.rs 中定义的静态密码(用于推导 256 位 ChaCha20 密钥)与变量 PASSWORD_DEF

const PASSWORD_DEF: &str = "1e$tob5UtRi6oFr8jlYO";

在构建您自己的 recmd 可执行文件之前,请务必更改此变量的值,使用您自己的密码。

或者,可以通过设置环境变量 RECMDK 来按需设置用于推导加密密钥的密码。为此,使用以下命令运行服务器(在此示例中,密码设置为 "mypasswd")

RECMDK='mypasswd' remcd srv -p 22000 -d

然后,像这样使用 recmd 在客户端模式下(将 1.2.3.4 替换为运行服务器的宿主机的 IP 地址)

RECMDK='mypasswd' recmd snd -a 1.2.3.4 -p 22000 -c "bash -c 'ls /etc > /tmp/out'"

许可证

许可协议为以下之一

根据您的选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在作品中的任何贡献,应按上述方式双重授权,不附加任何额外条款或条件。

依赖项

约2.4-3.5MB
约66K SLoC