技術文檔 2021年6月14日
如今,SSH 已成爲訪問遠程 Linux 服務器的默認方法。
SSH 代表 Secure Shell,它是一(yī)種強大(dà)、高效且流行的網絡協議,用于以遠程方式在兩台計算機之間建立通信。讓我(wǒ)們不要忘記其名稱的安全部分(fēn);SSH 加密所有流量以防止諸如劫持和竊聽等攻擊,同時提供不同的身份驗證方法和無數的配置選項。
在本初學者指南(nán)中(zhōng),您将了解:
在您看到任何配置過程之前,最好先了解一(yī)下(xià) SSH 的絕對基本概念。
SSH 協議基于服務器-客戶端架構。“服務器”允許通過通信通道連接“客戶端”。該通道是加密的,交換是通過使用公共和私人 SSH 密鑰來管理的。
OpenSSH是最流行的開源工(gōng)具之一(yī),它在 Linux、BSD 和 Windows 上提供 SSH 功能。
要成功設置 SSH,您需要:
區分(fēn)服務器和客戶端很重要。您可能不希望您的個人計算機充當 SSH 服務器,除非您有充分(fēn)的理由希望其他人通過 SSH 連接到您的系統。
通常,您有一(yī)個專用系統作爲服務器。例如,運行 Ubuntu 服務器的Raspberry Pi。您可以在 Raspberry Pi 上啓用 SSH,以便您可以在終端中(zhōng)使用 SSH 從您的主個人計算機控制和管理設備。
有了這些信息,讓我(wǒ)們看看如何在 Ubuntu 上設置 SSH 服務器。
設置 SSH 并不複雜,隻需幾個步驟即可完成。
同樣,SSH 服務器安裝應該在您想要充當服務器并且想要通過 SSH 遠程連接到的系統上完成。
讓我(wǒ)們首先打開一(yī)個終端窗口來輸入必要的命令。
請記住在安裝新軟件包或軟件之前更新您的 Ubuntu 系統,以确保您運行的是最新版本。
sudo apt update && sudo apt upgrade
運行 SSH Server 所需的包由 OpenSSH 的 openssh-server 組件提供:
sudo apt install openssh-server
一(yī)旦包的下(xià)載和安裝完成,SSH 服務應該已經在運行,但爲了确保我(wǒ)們将檢查它:
service ssh status
您也可以使用 systemd 命令:
sudo systemctl status ssh
您應該會看到類似這樣的内容,其中(zhōng)突出顯示了 Active 一(yī)詞。點擊q
返回命令提示符。
如果在您的情況下(xià)服務沒有運行,您将必須像這樣激活:
sudo systemctl enable --now ssh
Ubuntu 附帶了一(yī)個名爲UFW(UncomplicatedFirewall)的防火(huǒ)牆實用程序,它是iptables 的一(yī)個接口,它反過來管理網絡規則。如果防火(huǒ)牆處于活動狀态,它可能會阻止連接到您的 SSH 服務器。
要配置 UFW 以允許所需的訪問,您需要運行以下(xià)命令:
sudo ufw allow ssh
可以檢查 UFW 的狀态 running sudo ufw status
。
此時我(wǒ)們的 SSH 服務器已經啓動并運行,隻是在等待來自客戶端的連接。
您的本地 Linux 系統應該已經安裝了 SSH 客戶端。如果沒有,您可以始終在 Ubuntu 上使用以下(xià)命令安裝它:
sudo apt install openssh-client
要連接到您的 Ubuntu 系統,您需要知(zhī)道計算機的 IP 地址并使用ssh
命令,如下(xià)所示:
ssh username@address
将用戶名更改爲系統中(zhōng)的實際用戶,将地址更改爲 Ubuntu 機器的 IP 地址。
如果您不知(zhī)道計算機的 IP 地址,您可以ip a
在服務器的終端中(zhōng)輸入并檢查輸出。你應該有這樣的事情:
從這裏可以看出,我(wǒ)的 IP 地址是192.168.1.111。讓我(wǒ)們嘗試使用username@address格式進行連接。
ssh team@192.168.1.111
第一(yī)次連接到 SSH 服務器時,它會要求添加主機的權限。輸入yes
并點擊Enter繼續。
SSH 立即告訴您該主機已被永久添加,然後詢問分(fēn)配給用戶名的密碼。輸入密碼并Enter再次點擊。
瞧!您将遠程登錄到您的 Ubuntu 系統!
現在您可以像往常一(yī)樣在遠程系統的終端中(zhōng)工(gōng)作。
要關閉連接,您隻需要鍵入exit
它就會立即關閉它,而無需确認。
如果你想停止 SSH 服務,你需要這個命令:
sudo systemctl stop ssh
這将停止服務,直到您重新啓動它或直到系統重新啓動。要重新啓動它,請鍵入:
sudo systemctl start ssh
現在,如果您想在系統引導期間禁止它啓動,請使用以下(xià)命令:
sudo systemctl disable ssh
這不會阻止服務在當前會話期間運行,隻是在啓動期間加載。如果要讓它在系統引導期間再次啓動,請鍵入:
sudo systemctl enable ssh
該工(gōng)具ssh
包含在大(dà)多數 *nix 系統中(zhōng),從 Linux 到 macOS,但這些并不是唯一(yī)存在的選項,以下(xià)是一(yī)些可以從其他操作系統使用的客戶端: