#ssh #mosh #cli

app moshudp

为 mosh-client 和 mosh-server 提供的基于 UDP 的简易会话建立器

5 个版本

0.1.4 2022 年 5 月 10 日
0.1.3 2022 年 5 月 8 日
0.1.2 2022 年 5 月 7 日
0.1.1 2022 年 5 月 7 日
0.1.0 2022 年 5 月 7 日

#123 in #ssh

每月 26 次下载

MIT/Apache

28KB
584

moshudp

mosh 通常使用 ssh 建立会话。然而,有时由于网络问题 SSH 不可用,或者由于某些配置错误而无法访问 SSH(因此也无法访问 Mosh)。

Moshudp 为 mosh-client 和 mosh-server 提供了基于 UDP 的会话建立机制的替代方案。

这允许 mosh-client 和 mosh-server 仅使用一个 UDP 端口连接,而不需要 SSH 或其他 TCP 连接。身份验证基于一个静态密钥文件。

限制

  • 一次只能有一个客户端。连接到竞争的客户端将断开较早的一个(您可以使用 --ping 模式来非破坏性地检查服务器)。
  • 仅对称加密 - 客户端和服务器上的密钥文件相同。
  • 没有 NAT 穿越或 ICE。
  • 没有安全审计。我已尽力防止重放攻击或成为 DDoS 放大器,但我不是安全专家。
  • 如果密钥不正确,则不会回复任何内容 - 客户端将仅超时。
  • moshudp 的安全模型假设 mosh-server 准备好接受来自开放互联网的任意(即恶意)数据包。

安装

使用 Github 发布版 获取您平台上的预构建版本,或者安装 Rust 工具链并执行 cargo install moshudp

帮助输出

$ moshudp --help
Usage: moshudp <command> [<args>]

mosh-server and mosh-client interconnector based on UDP and a static key file

Options:
  --help            display usage information

Commands:
  serve             server mode
  connect           client mode
  keygen            generate 32-byte random file to use as a key on client and
                    server

$ moshudp serve  --help
Usage: moshudp serve <addr> <keyfile> [-4] [-6]

server mode

Positional Arguments:
  addr              socket address to listen
  keyfile           32-byte file to generate use as a key

Options:
  -4, --ipv4        limit hostname resolution to IPv4 addresses
  -6, --ipv6        limit hostname resolution to IPv6 addresses
  --help            display usage information

$ moshudp connect  --help
Usage: moshudp connect <addr> <keyfile> [-4] [-6] [--ping]

client mode

Positional Arguments:
  addr              socket address to connect
  keyfile           32-byte file to generate use as a key

Options:
  -4, --ipv4        limit hostname resolution to IPv4 addresses
  -6, --ipv6        limit hostname resolution to IPv6 addresses
  --ping            skip most of the algorithm, just send a ping
  --help            display usage information

另请参阅

依赖项

~5MB
~102K SLoC