3 个版本 (破坏性更新)
0.3.0 | 2023 年 3 月 11 日 |
---|---|
0.2.0 | 2023 年 3 月 1 日 |
0.1.0 | 2023 年 2 月 25 日 |
#66 在 #运行命令
每月 1,323 次下载
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 版(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- 麻省理工学院许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
根据您的选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在作品中的任何贡献,应按上述方式双重授权,不附加任何额外条款或条件。
依赖项
约2.4-3.5MB
约66K SLoC