在 Ubuntu 中配置 SSH 的完整指南
如今 SSH 已成為了登錄遠(yuǎn)程服務(wù)器的默認(rèn)方式。
SSH 的全稱是 “安全的 ShellSecure Shell”,它功能強(qiáng)大、效率高,這個(gè)主流的網(wǎng)絡(luò)協(xié)議用于在兩個(gè)遠(yuǎn)程終端之間建立連接。讓我們不要忘記它名稱的“安全”部分,SSH 會(huì)加密所有的通信流量,以防止如劫持、竊聽(tīng)等攻擊,同時(shí)提供不同的身份認(rèn)證方式和無(wú)數(shù)個(gè)配置選項(xiàng)。
在這份新手指南中,你會(huì)學(xué)到:
- SSH 的基本概念
- 設(shè)置 SSH 服務(wù)器(在你想要遠(yuǎn)程登錄的系統(tǒng)上)
- 從客戶端(你的電腦)通過(guò) SSH 連接遠(yuǎn)程服務(wù)器
SSH 的基本概念
在學(xué)習(xí)配置過(guò)程前,讓我們先了解一下 SSH 的全部基礎(chǔ)概念。
SSH 協(xié)議基于客戶端-服務(wù)器server-client(CS)架構(gòu)。“服務(wù)器Server”允許“客戶端Client”通過(guò)通信通道進(jìn)行連接。該信道是經(jīng)過(guò)加密的,信息交換通過(guò) SSH 公私鑰進(jìn)行管理。
Image credit: SSH
??OpenSSH?? 是在 Linux、BSD 和 Windows 系統(tǒng)上提供 SSH 功能的最流行的開(kāi)源工具之一。
想要成功配置 SSH,你需要:
- 在作為服務(wù)器的機(jī)器上部署 SSH 服務(wù)器組件,它由?
?openssh-server?
? 包提供。 - 在你遠(yuǎn)程訪問(wèn)服務(wù)器的客戶端機(jī)器上部署 SSH 客戶端組件,它由?
?openssh-client?
? 包提供,大多數(shù) Linux 和 BSD 發(fā)行版都已經(jīng)預(yù)裝好了。
區(qū)分服務(wù)器和客戶端是十分重要的事情?;蛟S你不想要你的 PC 作為 SSH 服務(wù)器,除非你有充分理由希望其他人通過(guò) SSH 連接你的系統(tǒng)。
通常來(lái)說(shuō),你有一個(gè)專用的服務(wù)器系統(tǒng)。例如,一個(gè) ??運(yùn)行 Ubuntu 的樹(shù)莓派??。你可以 ??啟用樹(shù)莓派的 SSH 服務(wù)??,這樣你可以在你 PC 中的終端中,通過(guò) SSH 控制并管理該設(shè)備。
有了這些信息,讓我們看看如何在 Ubuntu 上設(shè)置 SSH 服務(wù)器。
在 Ubuntu 服務(wù)器中配置 SSH
設(shè)置 SSH 并不復(fù)雜,只需要以下幾步。
前提
- 一個(gè)在服務(wù)器端擁有?
?sudo?
? 權(quán)限的用戶 - 可以下載所需包的互聯(lián)網(wǎng)連接
- 在你的網(wǎng)絡(luò)中至少有另一個(gè)系統(tǒng)??梢允蔷钟蚓W(wǎng)中的另一臺(tái)電腦,遠(yuǎn)程服務(wù)器或者計(jì)算機(jī)中托管的虛擬機(jī)。
再次強(qiáng)調(diào),在你想要通過(guò) SSH 遠(yuǎn)程登錄的系統(tǒng)上安裝 SSH 服務(wù)。
第一步:安裝所需包
讓我們從打開(kāi)終端輸入一些必要命令開(kāi)始。
注意,在安裝新的包或者軟件前,要 ??更新你的 Ubuntu 系統(tǒng)??,以確保運(yùn)行的是最新版本的程序。
你要運(yùn)行 SSH 服務(wù)器的包由 OpensSSH 的 ??openssh-server?
? 組件提供:
第二步:檢查服務(wù)器狀態(tài)
當(dāng)你下載并安裝完包后,SSH 服務(wù)器應(yīng)該已經(jīng)運(yùn)行了,但是為了確保萬(wàn)無(wú)一失我們需要檢查一下:
你還可以使用 ??systemctl?
? 命令:
你應(yīng)該會(huì)看到這樣的結(jié)果,其中 ??active?
? 是高亮的。輸入 ??q?
? 退出該頁(yè)面。
如果你的結(jié)果中 SSH 服務(wù)沒(méi)有運(yùn)行,使用這個(gè)命令運(yùn)行它:
第三步:允許 SSH 通過(guò)防火墻
Ubuntu 帶有名為 ??UFW??(簡(jiǎn)單的防火墻Uncomplicated Firewall)的防火墻,這是管理網(wǎng)絡(luò)規(guī)則的 ??iptables?
? 的一個(gè)接口。如果啟動(dòng)了防火墻,它可能會(huì)阻止你連接服務(wù)器。
想要配置 UFW 允許你的接入,你需要運(yùn)行如下命令:
UFW 的運(yùn)行狀態(tài)可以通過(guò)運(yùn)行 ??sudo ufw status?
? 來(lái)檢查。
現(xiàn)在,我們的 SSH 服務(wù)器已經(jīng)開(kāi)始運(yùn)行了,在等待來(lái)自客戶端的連接。
連接遠(yuǎn)程服務(wù)器
你本地的 Linux 系統(tǒng)已經(jīng)安裝了 SSH 客戶端。如果沒(méi)有,你可以在 Ubuntu 中使用如下命令安裝:
要連接你的 Ubuntu 系統(tǒng),你需要知道它的 IP 地址,然后使用 ??ssh?
? 命令,就像這樣:
將 用戶名(??username?
?)改為你的系統(tǒng)上的實(shí)際用戶名,并將 地址(??address?
?)改為你服務(wù)器的 IP 地址。
如果你 ??不知道 IP 地址??,可以在服務(wù)器的終端輸入 ??ip a?
? 查看結(jié)果。應(yīng)該會(huì)看到這樣的結(jié)果:
Using “ip a” to find the IP address
可以看到我的 IP 地址是 ??192.168.1.111?
?。讓我們使用 ??username@address?
? 格式進(jìn)行連接。
這是你第一次連接到該 SSH 服務(wù)器,它會(huì)請(qǐng)求添加主機(jī)。輸入 ??yes?
? 并回車(chē)即可。
First time connecting to the server
SSH 會(huì)立即告訴你該主機(jī)已經(jīng)被永久添加了,并要求你輸入指定用戶的密碼,輸入密碼并再次按回車(chē)即可。
Host added, now type in the password
瞧,你遠(yuǎn)程登錄了你的 Ubuntu 系統(tǒng)!
Connected!
現(xiàn)在,你可以在遠(yuǎn)程服務(wù)器的終端里和尋常一樣工作了。
關(guān)閉 SSH 連接
你只需要輸入 ??exit?
? 即可關(guān)閉連接,它會(huì)立馬關(guān)閉不需要確認(rèn)。
Closing the connection with “exit”
在 Ubuntu 中關(guān)閉并禁止 SSH
如果你想要停止 SSH 服務(wù),需要運(yùn)行該命令:
該命令會(huì)關(guān)閉 SSH 服務(wù),直到重啟它或者系統(tǒng)重啟。想要重啟它,輸入:
現(xiàn)在,如果你想要禁止 SSH 跟隨系統(tǒng)啟動(dòng),使用該命令:
該命令不會(huì)停止當(dāng)前的 SSH 會(huì)話,只會(huì)在啟動(dòng)的時(shí)候生效。如果你想要它跟隨系統(tǒng)啟動(dòng),輸入:
其他 SSH 客戶端
從 Linux 到 macOS,大多數(shù) *nix 系統(tǒng)中都有 ??ssh?
? 工具,但這并不是唯一的選項(xiàng),這里有幾個(gè)可以在其他操作系統(tǒng)中使用的客戶端:
- ??PuTTY?? 是一個(gè)自由開(kāi)源的 Windows 系統(tǒng)上的 SSH 客戶端。它功能強(qiáng)大并且簡(jiǎn)單易用。如果你從 Windows 系統(tǒng)上連接你的 Ubuntu 服務(wù)器,PuTTY 是最好的選擇。(LCTT 譯注:切記從官方網(wǎng)站下載。)
- 對(duì)安卓用戶來(lái)說(shuō),??JuiceSSH?? 是十分優(yōu)秀的工具。如果你在旅途中需要一個(gè)移動(dòng)客戶端來(lái)連接你的 Ubuntu 系統(tǒng),我強(qiáng)烈建議你試試 JuiceSSH。它已經(jīng)出現(xiàn)了將近 10 年,并且可以免費(fèi)使用。
- 最后是??Termius??,它可用于 Linux、Windows、macOS、iOS 和安卓。它有一個(gè)免費(fèi)版本和幾個(gè)付費(fèi)選項(xiàng)。如果你運(yùn)行大量服務(wù)器并進(jìn)行共享連接的團(tuán)隊(duì)合作,那么 Termius 對(duì)你來(lái)說(shuō)是一個(gè)不錯(cuò)的選擇。
總結(jié)
在這份指導(dǎo)中,你可以在 Ubuntu 系統(tǒng)中設(shè)置 SSH 作為服務(wù)器,允許來(lái)自你電腦的遠(yuǎn)程安全的連接,便于你通過(guò)命令行開(kāi)展工作。
此,我推薦以下文章:
- ??Linux SSH 入門(mén)教程??
- ??利用 SSH 配置文件管理多個(gè) SSH 連接??
- ??向 SSH 服務(wù)器添加公鑰以進(jìn)行無(wú)密碼身份驗(yàn)證??
- ??保護(hù)你的 SSH 服務(wù)器的 SSH 加固技巧??
遠(yuǎn)程工作快樂(lè)!