首页 > 解决方案 > 使用 Mosh 而不是 SSH

问题描述

我使用 ssh 的时间最长,但现在我想尝试 mosh,但文档不是最强的。

我将如何在终端中使用 mosh 命令编写这个 ssh 命令?

ssh abc123@spaf.cs.utsa.edu -p 211 

标签: shellsshserverterminalmosh

解决方案


这是 mosh 文档中的直接答案

mosh --ssh="ssh -p 211" abc123@spaf.cs.utsa.edu

为此,您仍然需要设置 mosh,包括在目标主机上安装 mosh 并侦听在目标主机防火墙设置中为 UDP 连接清除的端口(默认情况下在 60000 到 61000 范围内)。

请参阅 github https://github.com/mobile-shell/mosh上 README.md 的“工作原理”部分

mosh 程序将 SSH 到 user@host 以建立连接。SSH 可能会提示用户输入密码或使用公钥身份验证登录。

从这一点开始,mosh 在服务器机器上运行 mosh-server 进程(作为用户)。服务器进程侦听高 UDP 端口,并通过 SSH 将其端口号和 AES-128 密钥发送回客户端。然后关闭 SSH 连接,终端会话通过 UDP 开始。

如果客户端更改 IP 地址,服务器将在几秒钟内开始向客户端发送新 IP 地址。

为了发挥作用,Mosh 需要在客户端和服务器之间传递 UDP 数据报。默认情况下,mosh 使用介于 60000 和 61000 之间的端口号,但用户可以使用 -p 选项选择特定端口。请注意 -p 选项对 SSH 使用的端口没有影响。

这意味着 -p 选项对 SSH 使用的端口没有影响?那是指 mosh 选项,而不是 SSH 选项。所以换句话说,你想要的和我上面给你的基本上是说:“使用端口 211 通过 SSH 建立连接,然后,一旦全部设置好,使用 60000-61000 范围内的 mosh 的默认端口”(假设您有默认设置)。

另一方面,如果您像这样对我们使用 mosh -p 选项

mosh -p 211 abc123@spaf.cs.utsa.edu

这绝对行不通,因为这会告诉 mosh 尝试通过为 SSH 保留的端口进行连接,这将失败,此外,它将默认尝试通过标准 SSH 端口 22 建立连接,这将也失败了。换句话说,上面说的是:“在端口 22 上使用 SSH 连接到监听端口 211 的 mosh 服务器。” 由于在您的情况下所有这些事情都是错误的,因此它不起作用。

因此,除了指定特定的 SSH 端口外,您还需要确保在目标主机上运行 mosh 并在默认端口或您指定的另一个端口上进行侦听。您还必须确保已设置防火墙规则以允许该连接。


推荐阅读