需要SSH到無法訪問的Linux計算機嗎?讓它給您打電話,然後挖掘該連線以獲得您自己的遠端SSH會話。我們教你怎麼做。
有時,遠端計算機很難接觸到。他們所在的站點可能有嚴格的防火牆規則,或者本地管理員設定了複雜的網路地址轉換規則。如果你需要連線到這樣一臺計算機,你怎麼接觸它?
讓我們建立一些標籤。您的計算機是本地計算機,因為它離您很近。您要連線的計算機是遠端計算機,因為它與您位於不同的位置。
為了區分本文中使用的本地計算機和遠端計算機,遠端計算機名為“howtogeek”,執行的是ubuntulinux(帶有紫色終端windows)。本地計算機名為“Sulaco”,執行Manjaro Linux(帶有黃色終端視窗)。
通常,您會從本地計算機啟動SSH連線,然後連線到遠端計算機。在我們描述的網路場景中,這不是一個選項。不管具體的網路問題是什麼,只要您不能直接用SSH連線到遠端計算機,這就非常有用。
但是,如果您端的網路配置很簡單,遠端計算機就可以連線到您。但是,僅此一項還不足以滿足您的需要,因為它不能為您提供遠端計算機上的工作命令列會話。但這是一個開始。兩臺計算機之間已建立連線。
答案在於反向SSH隧道。
反向SSH隧道允許您使用已建立的連線建立從本地計算機到遠端計算機的新連線。
因為原始連線是從遠端計算機到您的,所以使用它來進行另一個方向的連線就是“反向”使用它。而且因為SSH是安全的,所以您將安全連線放在現有的安全連線中。這意味著您與遠端計算機的連線在原始連線中充當專用隧道。
所以我們得到了“反向SSH隧道”這個名字
反向SSH隧道依賴於遠端計算機使用已建立的連線來偵聽來自本地計算機的新連線請求。
遠端計算機監聽本地計算機上的網路埠。如果它檢測到對該埠的SSH請求,它會將該連線請求轉發回它自己,並關閉已建立的連線。這提供了從本地計算機到遠端計算機的新連線。
設定起來比描述起來容易。
SSH已經安裝在您的Linux計算機上,但是如果本地計算機以前從未接受過SSH連線,您可能需要啟動SSH守護程式(sshd)。
sudo systemctl start sshd要在每次重新啟動計算機時啟動SSH守護程式,請使用以下命令:
sudo systemctl enable sshd在遠端計算機上,我們使用以下命令。
您可能會收到一條關於以前從未連線到本地計算機的警告。或者,當連線詳細資訊新增到已識別的SSH主機列表時,您可能會看到一個警告。你所看到的一切取決於是否曾經從遠端計算機連線到本地計算機。
系統將提示您輸入用於連線到本地計算機的帳戶的密碼。
注意,連線完成後,命令提示符從戴夫@howtogeek至戴夫@蘇拉科。
我們現在已從遠端計算機連線到本地計算機。這意味著我們可以向它發出命令。讓我們使用who命令檢視本地計算機上的登入名。
who我們可以看到,擁有名為dave的使用者帳戶的人已登入到本地計算機,而遠端計算機已從IP地址192.168.4.25連線(使用相同的使用者憑據)。
相關:如何在Linux中確定當前使用者帳戶
因為從遠端計算機連線成功,並且它正在偵聽連線,所以我們可以嘗試從本地計算機連線到遠端計算機。
遠端計算機正在偵聽本地計算機上的埠43022。因此,為了與遠端計算機建立連線,我們要求ssh在埠43022上與本地計算機建立連線,這有點違反直覺。該連線請求將轉發到遠端計算機。
ssh localhost -p 43022系統會提示我們輸入使用者帳戶密碼,然後從本地計算機連線到遠端計算機。我們的Manjaro電腦高興地說:“歡迎使用Ubuntu18.04.2LTS。”。
請注意,命令提示符已從戴夫@蘇拉科至戴夫@howtogeek。我們已經實現了我們的目標,使SSH連線到我們難以到達的遠端計算機。
為了更方便地從遠端計算機連線到本地計算機,我們可以設定SSH金鑰。
在遠端計算機上,鍵入以下命令:
ssh-keygen系統將提示您輸入密碼短語。您可以按Enter忽略密碼短語問題,但不建議這樣做。這意味著遠端計算機上的任何人都可以與您的本地計算機建立SSH連線,而無需詢問密碼。
用符號分隔的三到四個單詞將構成一個健壯的密碼短語。
將生成您的SSH金鑰。
我們需要把公鑰傳給本地計算機。使用此命令:
ssh-copy-id [email protected]系統將提示您輸入要登入的使用者帳戶的密碼,在本例中,[email protected]。
第一次從遠端計算機向本地計算機發出連線請求時,必須提供密碼短語。只要終端視窗保持開啟狀態,您就不必為將來的連線請求再次輸入它。
相關:如何從Linux Shell建立和安裝SSH金鑰
有些隧道可能是黑暗和曲折的,但是反向SSH隧道並不是很難導航,如果你能在頭腦中保持遠端計算機和本地計算機之間的關係。然後倒過來。
...次後看到此警告,則表明伺服器的加密金鑰指紋不同。要麼是伺服器管理員更改了它,要麼是有人正在攔截您的流量,並試圖欺騙您連線到惡意的冒名頂替SSH伺服器。小心! 系統將提示您輸入SSH伺服器上帳戶的使用者名稱和密...
... 動態埠轉發:使用ssh伺服器作為代理 相關:VPN和代理有什麼區別? 還有“動態埠轉發”,其工作原理類似於代理或VPN。SSH客戶機將建立一個SOCKS代理,您可以配置要使用的應用程式。所有透過代理髮送的流量都將透過SSH伺服器...
...您只能為Firefox配置單獨的代理設定。 相關:VPN和代理有什麼區別? 一般來說,如果你的學校或工作向你提供代理,你會使用代理。您也可以使用代理來隱藏您的IP地址或訪問您所在國家不可用的地理阻止網站,但我們建議您使...
...個免費的層供那些只想在購買前試用的人使用。 相關:什麼是VPN,為什麼我需要VPN? vpn還通常用於遠端連線到工作網路,因此vpn通常不會被阻塞。然而,中國最近開始干擾vpn。免費的VPN是可用的,但一個堅實的,快速的VPN將花...
Chromebooks透過其包含的crosh shell和SSH命令提供了對SSH隧道的內建支援。SSH隧道允許您使用SSH連線,如VPN或加密代理,透過安全隧道傳送瀏覽流量。 這允許你在公共網路上瀏覽時加密流量,訪問地理位置阻止的內容,甚至像中國...