要登录到远程系统,我们曾经使用 远程登录. 由于telnet存在严重的安全漏洞,被替换为 SSH.
SSH 允许用户使用/不使用密码登录远程系统,但需要使用私钥和公钥。 SSH 的主要优点是它的加密。 它允许用户与远程系统进行通信,而不必担心被窃听或篡改。
SSH的缺点
把工作 SSH 简单来说,就是加密包的TCP连接。
SSH 在本地和远程系统之间发送数据包,就像 远程登录 但数据包的内容是加密的。 中间没有缓冲和处理。 甚至您键入的字符也会发送到远程系统,然后远程系统会将其响应(其中包含要在屏幕上显示的键入的字符)发送到本地系统。
你能看到你输入的单个字符的整个往返旅程吗?
“”它只是发送/接收加密数据包“”
但是当网络断开或非常慢时会发生什么。 TCP 连接将被中断,本地系统将被悬空而不会出现任何错误。 它不是典型的冻结 Linux 系统,只是一个 SSH 连接断开的冻结终端。
在以下其中一种情况下,您可能对 ssh 感到沮丧。
- 您的网络连接已断开。 您的 ssh 会话不会显示任何内容。 当你输入 shell 时,你会注意到什么都没有发生。 然后您将检查互联网/Wi-fi 图标。
- 当您的互联网连接速度较慢时,会出现同样的情况。 您在本地系统中键入的字符可能会在几秒钟后出现,或者在更糟糕的情况下,甚至几分钟。
- 当您长时间不活动时,即使您的计算机没有空闲并且网络连接处于活动状态,有时 SSH 也会停止工作。
总而言之,SSH 提供了很好的安全性,但在高延迟连接中几乎没有可用性。 即使在 SSH 连接断开后,您也可以在 Linux 中使用 nohup 命令继续运行这些命令,但这并不是一个好的解决方案。 你知道什么更好吗? 莫什!
Mosh:没有连接问题的 SSH
莫什 代表 移动壳牌. 它为上述所有问题提供了一个简单的解决方案。 它使用类似于使用 SSP 协议(状态同步协议)的项目(对象)的缓冲和同步的技术。 为了传输数据包,它使用 UDP 这是无连接协议。
要了解 mosh 的工作原理,请阅读其 官方网站.
为了避免重新发明轮子,mosh 使用 SSH 用于身份验证。 因此,您无需创建新的密钥对或用户等。 所以每一个安全优势 SSH 有也有 莫什. 这也意味着您应该在本地和远程系统中都有一个有效的 SSH 设置。
在 Ubuntu 和其他 Linux 发行版上安装 mosh
如果您没有安装和配置 ssh,请学习 SSH 的基础知识并在 Ubuntu 或您使用的任何 Linux 上启用 SSH。
在确保您有一个有效的 SSH 设置之后,安装 mosh 是一项简单的任务。 您需要安装的软件包在本地和远程系统中是相同的。
安装 莫什 在基于 Ubuntu 或 Debian 的 Linux 发行版中,您可以一一使用以下命令:
sudo apt update
sudo apt install mosh
Mosh 在所有主要的 Linux 发行版中都可用。 使用您的发行版的包管理器来安装它。
完成安装 mosh 后,客户端/本地端一切就绪。 在远程端(即服务器),您必须进行简单的配置。
在远程服务器上配置 mosh
记住我说的那部分 莫什 使用UDP? 默认情况下,mosh 使用 UDP 端口 60000-61000。 因此,如果您在远程系统上有防火墙,则必须为这些端口重写防火墙规则,如下所示。 ufw 是防火墙管理器。
sudo ufw allow 60000:61000/udp
让我们通过 mosh 连接
到目前为止,我们有一个工作的 SSH,安装在两个系统中的 mosh,以及一个允许远程服务器上端口 60K-61K 上的 UDP 流量的防火墙规则。
要使用 mosh,它很简单,如下所示
mosh [email protected]
是的! 我知道。 就像 ssh 一样简单。
但是,如果我需要指定默认端口以外的 ssh 端口或使用 ssh 特定选项怎么办。 mosh 为您提供保障。 你只需要通过“SSH 选项 [argument]” 到选项 –ssh.
为了 example,我需要连接到 SSH 在远程服务器上的端口 2222 上运行。 可以按如下方式完成。
mosh [email protected] --ssh="ssh -p 2222"
那就是系统是连接的。 现在要了解 mosh 的强大功能,请尝试关闭并重新打开网络连接。 您可以看到 mosh 仍在工作。 多么酷啊!
我希望你喜欢这个关于 Mosh 的教程。 自从发现 Mosh 后,我就不再使用 ssh 连接远程服务器了。 你呢? 您喜欢 Mosh 还是仍然喜欢 SSH? 分享你的观点。