在 Ubuntu 中配置 SSH 的完整指南

如今 SSH 已成為了登錄遠程服務(wù)器的默認方式。
SSH 的全稱是 “安全的 ShellSecure Shell”,它功能強大、效率高,這個主流的網(wǎng)絡(luò)協(xié)議用于在兩個遠程終端之間建立連接。讓我們不要忘記它名稱的“安全”部分,SSH 會加密所有的通信流量,以防止如劫持、竊聽等攻擊,同時提供不同的身份認證方式和無數(shù)個配置選項。
在這份新手指南中,你會學(xué)到:
- SSH 的基本概念
 - 設(shè)置 SSH 服務(wù)器(在你想要遠程登錄的系統(tǒng)上)
 - 從客戶端(你的電腦)通過 SSH 連接遠程服務(wù)器
 
SSH 的基本概念
在學(xué)習(xí)配置過程前,讓我們先了解一下 SSH 的全部基礎(chǔ)概念。
SSH 協(xié)議基于客戶端-服務(wù)器server-client(CS)架構(gòu)?!胺?wù)器Server”允許“客戶端Client”通過通信通道進行連接。該信道是經(jīng)過加密的,信息交換通過 SSH 公私鑰進行管理。

Image credit: SSH
??OpenSSH?? 是在 Linux、BSD 和 Windows 系統(tǒng)上提供 SSH 功能的最流行的開源工具之一。
想要成功配置 SSH,你需要:
- 在作為服務(wù)器的機器上部署 SSH 服務(wù)器組件,它由?
?openssh-server?? 包提供。 - 在你遠程訪問服務(wù)器的客戶端機器上部署 SSH 客戶端組件,它由?
?openssh-client?? 包提供,大多數(shù) Linux 和 BSD 發(fā)行版都已經(jīng)預(yù)裝好了。 
區(qū)分服務(wù)器和客戶端是十分重要的事情?;蛟S你不想要你的 PC 作為 SSH 服務(wù)器,除非你有充分理由希望其他人通過 SSH 連接你的系統(tǒng)。
通常來說,你有一個專用的服務(wù)器系統(tǒng)。例如,一個 ??運行 Ubuntu 的樹莓派??。你可以 ??啟用樹莓派的 SSH 服務(wù)??,這樣你可以在你 PC 中的終端中,通過 SSH 控制并管理該設(shè)備。
有了這些信息,讓我們看看如何在 Ubuntu 上設(shè)置 SSH 服務(wù)器。
在 Ubuntu 服務(wù)器中配置 SSH
設(shè)置 SSH 并不復(fù)雜,只需要以下幾步。
前提
- 一個在服務(wù)器端擁有?
?sudo?? 權(quán)限的用戶 - 可以下載所需包的互聯(lián)網(wǎng)連接
 - 在你的網(wǎng)絡(luò)中至少有另一個系統(tǒng)??梢允蔷钟蚓W(wǎng)中的另一臺電腦,遠程服務(wù)器或者計算機中托管的虛擬機。
 
再次強調(diào),在你想要通過 SSH 遠程登錄的系統(tǒng)上安裝 SSH 服務(wù)。
第一步:安裝所需包
讓我們從打開終端輸入一些必要命令開始。
注意,在安裝新的包或者軟件前,要 ??更新你的 Ubuntu 系統(tǒng)??,以確保運行的是最新版本的程序。
你要運行 SSH 服務(wù)器的包由 OpensSSH 的 ??openssh-server?? 組件提供:

第二步:檢查服務(wù)器狀態(tài)
當你下載并安裝完包后,SSH 服務(wù)器應(yīng)該已經(jīng)運行了,但是為了確保萬無一失我們需要檢查一下:
你還可以使用 ??systemctl?? 命令:
你應(yīng)該會看到這樣的結(jié)果,其中 ??active?? 是高亮的。輸入 ??q?? 退出該頁面。

如果你的結(jié)果中 SSH 服務(wù)沒有運行,使用這個命令運行它:
第三步:允許 SSH 通過防火墻
Ubuntu 帶有名為 ??UFW??(簡單的防火墻Uncomplicated Firewall)的防火墻,這是管理網(wǎng)絡(luò)規(guī)則的 ??iptables?? 的一個接口。如果啟動了防火墻,它可能會阻止你連接服務(wù)器。
想要配置 UFW 允許你的接入,你需要運行如下命令:
UFW 的運行狀態(tài)可以通過運行 ??sudo ufw status?? 來檢查。
現(xiàn)在,我們的 SSH 服務(wù)器已經(jīng)開始運行了,在等待來自客戶端的連接。
連接遠程服務(wù)器
你本地的 Linux 系統(tǒng)已經(jīng)安裝了 SSH 客戶端。如果沒有,你可以在 Ubuntu 中使用如下命令安裝:
要連接你的 Ubuntu 系統(tǒng),你需要知道它的 IP 地址,然后使用 ??ssh?? 命令,就像這樣:
將 用戶名(??username??)改為你的系統(tǒng)上的實際用戶名,并將 地址(??address??)改為你服務(wù)器的 IP 地址。
如果你 ??不知道 IP 地址??,可以在服務(wù)器的終端輸入 ??ip a?? 查看結(jié)果。應(yīng)該會看到這樣的結(jié)果:

Using “ip a” to find the IP address
可以看到我的 IP 地址是 ??192.168.1.111??。讓我們使用 ??username@address?? 格式進行連接。
這是你第一次連接到該 SSH 服務(wù)器,它會請求添加主機。輸入 ??yes?? 并回車即可。

First time connecting to the server
SSH 會立即告訴你該主機已經(jīng)被永久添加了,并要求你輸入指定用戶的密碼,輸入密碼并再次按回車即可。

Host added, now type in the password
瞧,你遠程登錄了你的 Ubuntu 系統(tǒng)!

Connected!
現(xiàn)在,你可以在遠程服務(wù)器的終端里和尋常一樣工作了。
關(guān)閉 SSH 連接
你只需要輸入 ??exit?? 即可關(guān)閉連接,它會立馬關(guān)閉不需要確認。

Closing the connection with “exit”
在 Ubuntu 中關(guān)閉并禁止 SSH
如果你想要停止 SSH 服務(wù),需要運行該命令:
該命令會關(guān)閉 SSH 服務(wù),直到重啟它或者系統(tǒng)重啟。想要重啟它,輸入:
現(xiàn)在,如果你想要禁止 SSH 跟隨系統(tǒng)啟動,使用該命令:
該命令不會停止當前的 SSH 會話,只會在啟動的時候生效。如果你想要它跟隨系統(tǒng)啟動,輸入:
其他 SSH 客戶端
從 Linux 到 macOS,大多數(shù) *nix 系統(tǒng)中都有 ??ssh?? 工具,但這并不是唯一的選項,這里有幾個可以在其他操作系統(tǒng)中使用的客戶端:
- ??PuTTY?? 是一個自由開源的 Windows 系統(tǒng)上的 SSH 客戶端。它功能強大并且簡單易用。如果你從 Windows 系統(tǒng)上連接你的 Ubuntu 服務(wù)器,PuTTY 是最好的選擇。(LCTT 譯注:切記從官方網(wǎng)站下載。)
 - 對安卓用戶來說,??JuiceSSH?? 是十分優(yōu)秀的工具。如果你在旅途中需要一個移動客戶端來連接你的 Ubuntu 系統(tǒng),我強烈建議你試試 JuiceSSH。它已經(jīng)出現(xiàn)了將近 10 年,并且可以免費使用。
 - 最后是??Termius??,它可用于 Linux、Windows、macOS、iOS 和安卓。它有一個免費版本和幾個付費選項。如果你運行大量服務(wù)器并進行共享連接的團隊合作,那么 Termius 對你來說是一個不錯的選擇。
 
總結(jié)
在這份指導(dǎo)中,你可以在 Ubuntu 系統(tǒng)中設(shè)置 SSH 作為服務(wù)器,允許來自你電腦的遠程安全的連接,便于你通過命令行開展工作。
此,我推薦以下文章:
- ??Linux SSH 入門教程??
 - ??利用 SSH 配置文件管理多個 SSH 連接??
 - ??向 SSH 服務(wù)器添加公鑰以進行無密碼身份驗證??
 - ??保護你的 SSH 服務(wù)器的 SSH 加固技巧??
 
遠程工作快樂!















 
 
 









 
 
 
 