如何使用開源MOSH獲得持久性的SSH連接?
譯文【51CTO.com快譯】如果您在公司內(nèi)使用多個(gè)無線或有線連接,又發(fā)覺自己要在園區(qū)內(nèi)走動(dòng)以履行管理職責(zé),會(huì)遇到這種情況:您建立了一條SSH連接,但從一個(gè)網(wǎng)絡(luò)漫游到另一個(gè)。出現(xiàn)這種情況時(shí),您的安全外殼連接會(huì)斷掉?;蛘咭苍S您的單條網(wǎng)絡(luò)連接并不總是最可靠的?如果您在執(zhí)行的管理任務(wù)不是很重要,那沒什么。如果您在執(zhí)行重要的任務(wù),這條連接又?jǐn)嗟簦瑫?huì)發(fā)生什么?
您不想那樣,這就是為什么應(yīng)該使用MOSH之類的工具。MOSH的全稱是移動(dòng)外殼(Mobile Shell),讓您可以獲得持久性的SSH連接,即使更改網(wǎng)絡(luò)或連接暫時(shí)中斷。更棒的是,MOSH的使用與SSH幾乎一樣,至少從用戶的角度來看是這樣。在底層,MOSH通過SSH讓用戶登錄,然后在60000至61000之間的UDP端口上啟動(dòng)連接,以保持連接持久性。
不妨安裝MOSH,看看其用法。
您需要什么?
MOSH適用于Linux、macOS、Windows、Android和iOS。您必須在服務(wù)器和客戶端上都安裝MOSH軟件包。我將用基于Ubuntu的Linux發(fā)行版來演示兩端。如果用戶使用MacOS,確保從MOSH下載頁面下載二進(jìn)制安裝程序。如果用戶使用Windows,沒有原生軟件包,因此您必須使用MOSH for Chrome。
如何安裝MOSH?
可以在我的發(fā)行版標(biāo)準(zhǔn)存儲(chǔ)庫中找到MOSH。要在基于Ubuntu的發(fā)行版上安裝MOSH,命令將是:
- sudo apt-get install mosh -y
如果您使用基于Red Hat的Linux發(fā)行版,命令將是:
- sudo dnf install mosh -y
確保在客戶端和服務(wù)器上都安裝了MOSH。
如何使用MOSH?
當(dāng)然,這假設(shè)您已經(jīng)可以使用SSH建立從客戶端到服務(wù)器的連接。在這種情況下,您可以使用MOSH來建立該連接,如下所示:
- mosh USER@SERVER
其中USER是遠(yuǎn)程用戶名,SERVER是服務(wù)器的IP地址或域。
如果由于某種原因需要使用不同的UDP端口,命令將是:
- mosh -p PORT USER @ SERVER
其中PORT是端口號(hào),USER是遠(yuǎn)程用戶名,SERVER是服務(wù)器的IP地址或域。
如果您已將SSH配置為在服務(wù)器上使用非標(biāo)準(zhǔn)端口,必須在MOSH命令中定義它,如下所示:
- mosh --ssh="ssh -p PORT" USER@SERVER
其中PORT是服務(wù)器上的非標(biāo)準(zhǔn)SSH端口,USER是遠(yuǎn)程用戶名,SERVER是服務(wù)器的IP地址。您可以結(jié)合UDP和SSH端口方面的更改,就像這樣:
- mosh -p UDP --ssh="ssh -p SSH" USER@SERVER
其中UDP是UDP端口,SSH是SSH端口,USER是遠(yuǎn)程用戶名,SERVER是服務(wù)器的IP地址或域。
MOSH也可以使用SSH身份,就像SSH中使用SSH身份那樣,如下所示:
- mosh -i IDENTITY
其中IDENTITY是您在~/.ssh/config中配置的身份的名稱。
如何配置防火墻?
您可能會(huì)遇到的一個(gè)問題是,服務(wù)器上的防火墻拒絕連接至MOSH將使用的必要端口。這個(gè)問題很容易解決。在使用“不復(fù)雜防火墻”的服務(wù)器(比如Ubuntu Server)上,打開這些端口的命令將是:
- sudo ufw allow 60000:61000/udp
如果您的服務(wù)器使用iptables,命令將是:
- sudo iptables -I INPUT 1 -p udp --dport 60000:61000 -j ACCEPT
一旦您允許端口訪問,MOSH應(yīng)該可以正常工作了。
這就是在MOSH的幫助下,在客戶端和服務(wù)器之間獲得比較可靠的SSH連接所需的全部步驟。試一下這款工具,看看即使從一個(gè)網(wǎng)絡(luò)漫游到另一個(gè)網(wǎng)絡(luò),您的SSH連接是否仍保持連接狀態(tài)。
原文標(biāo)題:How to achieve persistent SSH connections with the open source MOSH,作者:Jack Wallen
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】