如何在 Linux 上安装 Mosh Shell 作为 SSH 替代品
Mosh是Mobile Shell的缩写,是一个命令行应用程序,用于通过互联网从客户端计算机连接到服务器。它可以用作SSH ,并且比Secure Shell包含更多功能。
它是一个类似于 SSH 的应用程序,但具有附加功能。该应用程序最初由Keith Winstein为类 Unix 操作系统编写,并根据 GNU GPL v3 发布。
Mosh 的功能
- 它是一个支持漫游的远程终端应用程序。
- 适用于所有主要的类 UNIX 操作系统,即 Linux、FreeBSD、Solaris、Mac OS X 和 Android。
- 支持间歇性连接。
- 提供智能本地回声。
- 支持用户按键的行编辑。
- 通过 WiFi、蜂窝网络和长距离链路实现响应式设计和稳健性。
- 即使 IP 发生变化,仍保持连接。它使用 UDP 代替 TCP(由 SSH 使用)。当连接重置或分配新 IP 时,TCP 会超时,但 UDP 会保持连接打开。
- 当您长时间后恢复会话时,连接仍然保持完好。
- 无网络延迟。立即显示用户输入的键和删除内容,无网络延迟。
- 与 SSH 登录使用相同的旧方法。
- 处理数据包丢失的机制。
Linux 中安装 Mosh Shell
在Debian、Ubuntu和Mint等系统上,您可以借助apt-get 包管理器轻松安装Mosh包,如下所示。
# apt-get update # apt-get install mosh
在基于RHEL / CentOS / Fedora 的发行版上,您需要打开名为EPEL的第三方存储库,以便使用yum 包管理器从该存储库安装 mosh ,如图所示。
# yum update # yum install mosh
在Fedora 22+版本上,您需要使用dnf 包管理器来安装 mosh,如图所示。
# dnf install mosh
在其他 Linux 发行版上可以按照所示安装它。
# pacman -S mosh [On Arch/Manjaro Linux] $ sudo zypper in mosh [On OpenSuse] # emerge net-misc/mosh [On Gentoo]
如何使用 Mosh Shell?
1.让我们尝试使用 mosh shell 登录远程 Linux 服务器。
$ mosh root@192.168.0.150
注意:您是否看到了,由于远程CentOS 7机器上的端口未打开,因此我在连接时遇到错误。我执行的一个快速但不推荐的解决方案是:
# systemctl stop firewalld [on Remote Server]
首选方法是打开端口并更新防火墙规则。然后通过预定义端口连接到 mosh。有关防火墙的详细信息,您可能想访问此帖子。
2.假设默认的 SSH 端口 22 已更改为端口70,在这种情况下,您可以借助 mosh 的“ -p ”开关定义自定义端口。
$ mosh root@192.168.0.150 --ssh="ssh -p 70"
3.检查已安装的 Mosh 版本。
$ mosh --version
4.您可以在提示符下输入“ exit ”来关闭 mosh 会话。
$ exit
5. Mosh 支持很多选项,您可能会看到:
$ mosh --help
Mosh Shell 的缺点
- Mosh 需要额外的先决条件,例如允许通过 UDP 直接连接,而 SSH 则不需要这样做。
- 动态端口分配范围为60000-61000。第一个开放的端口会被分配。每个连接需要一个端口。
- 默认端口分配是一个严重的安全问题,尤其是在生产过程中。
- 支持 IPv6 连接,但不支持在 IPv6 上漫游。
- 不支持回滚。
- 不支持 X11 转发。
- 不支持 ssh-agent 转发。
结论
Mosh是一款不错的小工具,可在大多数 Linux 发行版的存储库中下载。尽管它有一些缺陷,特别是安全问题和额外要求,但它在漫游时保持连接等功能是其加分项。我的建议是,每个使用 SSH 的 Linux 用户都应该尝试一下这个应用程序,并且记住,Mosh 值得一试。