如何在Linux上安装Mosh Shell作为SSH替代品

Mosh,全名Mobile Shell,是一個命令列應用程式,用於從客戶端電腦通過互聯網連接到伺服器。它可以用作SSH,並且包含比Secure Shell更多功能。

這是一個類似於SSH的應用程式,但具有額外功能。該應用程式最初由Keith Winstein編寫,針對類Unix操作系統,並在GNU GPL v3下發布。

Mosh Shell SSH Client

Mosh的特點

  1. 它是一個支持漫遊的遠程終端應用程式。
  2. 適用於所有主要的類UNIX操作系統,如Linux、FreeBSD、Solaris、Mac OS X和Android。
  3. 支持間歇性連接。
  4. 提供智能本地回顯。
  5. 支持用戶按鍵的行編輯。
  6. 對wifi、蜂窩和長距離連接的響應設計和強大性質。
  7. 即使IP更改也保持連接。它使用UDP代替SSH使用的TCP。當連接被重置或分配新IP時,TCP會超時,但UDP會保持連接開啟。
  8. 在長時間後恢復會話時,連接保持完整。
  9. 無網絡延遲。立即顯示用戶輸入的按鍵和刪除,無需網絡延遲。
  10. 登錄方式與SSH中的相同。
  11. 處理丟包的機制。

在Linux中安裝Mosh Shell

DebianUbuntuMint等系統上,您可以輕鬆使用Mosh套件,並借助apt-get套件管理器進行安裝,如下所示。

# 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 [email protected]
Mosh Shell Remote Connection

注意:您是否看到我在連接時遇到錯誤,因為我遠端的CentOS 7主機的端口未開啟。我執行了一個快速但不推薦的解決方案:

# systemctl stop firewalld    [on Remote Server]

首選方法是打開一個端口並更新防火牆規則。然後連接到預定端口上的 mosh。有關 firewalld 的詳細信息,您可以訪問這篇文章:

  1. 如何在 CentOS、RHEL 和 Fedora 中配置 Firewalld

2. 讓我們假設將默認的 SSH 端口 22 更改為端口 70,在這種情況下,您可以使用 mosh 的 ‘-p‘ 選項定義自定義端口。

$ mosh [email protected] --ssh="ssh -p 70"

3. 檢查已安裝 Mosh 的版本。

$ mosh --version
Check Mosh Version

4. 您可以關閉 mosh 會話,在提示符上輸入 ‘exit‘。

$ exit

5. Mosh 支持許多選項,您可以看到如下:

$ mosh --help
Mosh Shell Options

Mosh Shell 的缺點

  1. Mosh 需要額外的先決條件,例如,允許通過 UDP 進行直接連接,這是 SSH 不需要的。
  2. 在 60000-61000 範圍內動態分配端口。分配第一個開放的端口。它需要每個連接一個端口。
  3. 默認端口分配是一個嚴重的安全問題,特別是在生產環境中。
  4. 支持 IPv6 連接,但不支持在 IPv6 上漫遊。
  5. 不支持滾動回看。
  6. 不支持 X11 轉發。
  7. 不支持 ssh-agent 轉發。

結論

Mosh 是一個非常方便的小工具,可以在大多數 Linux 發行版的存儲庫中下載。儘管它存在一些缺陷,特別是安全方面的問題和額外的要求,但其保持連接即使在漫遊時的功能是其優點。我建議每個處理 SSH 的 Linux 用戶都應該嘗試使用這個應用程序,要記住,Mosh 是值得一試的。

Source:
https://www.tecmint.com/mosh-shell-ssh-alternative-on-linux/