#shell #remote #client-side #iot #iot-devices #ssh #slave

bin+lib remote_shell

用 Rust 编写的 remote shell

13 个版本 (1 个稳定版)

2.0.0 2020 年 11 月 30 日
0.2.2 2020 年 7 月 17 日
0.1.9 2020 年 7 月 16 日
0.1.7 2020 年 6 月 24 日

#31#iot-devices

每月 29 次下载

MIT 许可证

83KB
861

remote_shell

remote_shell 通过 pass_ball(由 Rust 编写)运行。使用场景包括无固定 IP 的物联网设备、家庭电脑等。在从机安装远程 shell 客户端后,您可以从远程 shell 主机端像正常的 SSH 过程一样访问。头像

使用方法

步骤 1:启动 pass_ball 消息队列

克隆 pass_ball(https://github.com/wangmarkqi/pass_ball)并在具有公网 IP 或可访问位置的服务器上运行 main.rs。修改 .env 中的 conf 字符串。

SLAVE_ID = yourid

PASS_URL = http://192.168.177.1:8084

SLAVEID 是从机的 id,从机只对 'use' 命令指定的请求做出响应。

SLAVEID 不应与 pass 消息队列中的主题冲突,最好使用 uuid 作为 SLAVEID 或任何您能确保不会重复的字符串。

步骤 2:启动从机

要使用远程 shell,需要构建两种二进制文件,即从机和主机。此步骤用于从机端。在从机克隆 remote_shell 并在 main.rs 中运行 slave::slave_dispatch::dispatch();

步骤 3:启动主机

此步骤用于主机端。在主机克隆 remote_shell 并运行 host:🐚:run_shell();

步骤 4:使用 "use" 命令启动

首先通过 "use <从机 ID>" 指定从机 ID,然后发送像正常 shell 一样的命令,例如 "cd /home" 等。

终端操作

您可能会发现常用的键如 del、左箭头、右箭头不起作用,因为 remote_shell 重新编写了终端的原始模式。shell 操作键包括:

按箭头键上

返回上一个命令输入。

按箭头键下

转到下一个命令输入。

按退格键

删除前面的输入字符。

按 Tab 键

根据历史输入补充输入命令。

按 Home 键

清除终端。

按 Esc 键

退出 shell。

内置功能

除了标准命令外,例如 Linux 中的 ls、pwd 或 Windows 10 中的 dir,remote_shell 还提供了内置命令。

use <从机 ID>

此命令将指定您要控制的从机。您应该在从机PC上运行第3步,并在.env文件中配置从机ID。此slave_id(使用arg)应与.env文件中的ID相同。

示例:使用远程

发送 <本地文件路径> <远程文件路径>

将本地文件发送到远程。只有小文件有效。

示例:send C://test.txt /home/test.txt

rec <本地文件路径> <远程文件路径>

从远程接收文件。只有小文件有效。

示例:rec C://test1.txt /home/test2.txt

重启

将重启远程计算机。此命令通过异步消息发布通道发送,作为shell崩溃时的最终救援措施。注意,系统重启后自动重启远程shell。

示例:重启

依赖项

~8–19MB
~249K SLoC