在 Ubuntu 20.04 Linux 上啟用 SSH 的正確姿勢(shì)
SSH (Secure Shell) 是一種標(biāo)準(zhǔn)的網(wǎng)絡(luò)工具,用于以安全的方式遠(yuǎn)程訪問 PC 和其他系統(tǒng)。在這里,我們將告訴您如何在 Ubuntu 上啟用 SSH 并使用身份驗(yàn)證密鑰使用它。
什么是SSH?
SSH 或 Secure Shell,既表示網(wǎng)絡(luò)協(xié)議,也表示 使用所需 的 軟件。它適用于22的專用端口號(hào)。因此,在系統(tǒng)防火墻中必須允許在 Ubuntu 或任何其他系統(tǒng)端口 22 上使用 SSH。
使用 SSH 背后的想法是與網(wǎng)絡(luò)中的另一臺(tái)計(jì)算機(jī)建立 安全連接。但是,遠(yuǎn)程計(jì)算機(jī)必須有一個(gè)正在運(yùn)行的 SSH 服務(wù)器,否則我們將無法從本地計(jì)算機(jī)使用命令或 SSH 客戶端連接它。
一旦我們建立了連接,就會(huì)提示輸入遠(yuǎn)程 PC 用戶的密碼以登錄并以完全加密的形式訪問。連接的結(jié)果始終相同。您最終會(huì)進(jìn)入計(jì)算機(jī)上的命令行,并以其中一位用戶的身份登錄。
此外,我們不需要PC來連接,甚至可以使用智能手機(jī)。SSH 還允許在沒有顯示器的情況下控制計(jì)算機(jī),例如 NAS 盒、路由器等……
這個(gè)網(wǎng)絡(luò)工具不僅限于 Ubuntu,我們可以在 macOS、Windows、Rasberry Pi 和其他甚至智能手機(jī)上使用它……
在 Ubuntu 20.04 上安裝并啟用 Open SSH 服務(wù)器
大多數(shù)情況下,Ubuntu 默認(rèn)使用 SSH 作為 OpenSSH 服務(wù)器,并且客戶端已經(jīng)安裝在其中。但是,如果您沒有,請(qǐng)按照下面給出的步驟操作。本教程適用于所有活躍的 Ubuntu 系統(tǒng),例如 Ubuntu 18.04/19.04/21.04,
- 運(yùn)行系統(tǒng)更新命令-
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get update
- 在 Ubuntu 20.04 LTS 上安裝 OpenSSH 服務(wù)器-
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get install openssh-server openssh-client
- 在 Ubuntu 上啟用并啟動(dòng) SSH服務(wù)器服務(wù):
- linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable --now ssh
- 要檢查狀態(tài)運(yùn)行 -
- linuxmi@linuxmi:~/www.linuxmi.com$ systemctl status ssh
如下圖:
安裝完成后,我們可以使用本地計(jì)算機(jī)(可以是虛擬機(jī))通過 SSH 遠(yuǎn)程連接我們的 Ubuntu 20.04 LTS 系統(tǒng)進(jìn)行測(cè)試。當(dāng)然,您必須確保您的本地系統(tǒng)能夠訪問您要通過網(wǎng)絡(luò)連接的遠(yuǎn)程系統(tǒng)。
如何通過SSH連接遠(yuǎn)程Ubuntu系統(tǒng)
讓我們看看如何使用本地系統(tǒng)的命令提示符或終端通過 SSH 連接遠(yuǎn)程 Ubuntu 系統(tǒng)。
這里我們假設(shè)遠(yuǎn)程 Ubuntu 系統(tǒng)有一個(gè) IP地址為 192.168.150.211并且用戶名是linuxmi;現(xiàn)在通過 ssh 建立連接,請(qǐng)按照以下步驟操作:
- 在 Linux 中打開終端或在 Windows 系統(tǒng)中打開 命令提示符。
- 使用命令語(yǔ)法“ ssh username@ip-address”。例如 - ssh linuxmi@192.168.150.211。
- 由于我們?cè)诎惭b SSH 服務(wù)器之前沒有連接過我們的 Ubuntu 服務(wù)器,因此,當(dāng)然,計(jì)算機(jī)并不“認(rèn)識(shí)”彼此。
- 因此,當(dāng)我們第一次連接服務(wù)器時(shí),它會(huì)詢問您是否真的要連接到計(jì)算機(jī)以及您是否信任顯示的簽名。只需輸入“yes”進(jìn)行確認(rèn)。
- 之后,您的過程將詢問遠(yuǎn)程用戶的密碼,該密碼在連接服務(wù)器時(shí)在命令中定義。輸入密碼,您將獲得遠(yuǎn)程服務(wù)器的命令行以遠(yuǎn)程發(fā)出命令。要再次離開,請(qǐng)輸入“ exit ”。
如下圖:
密鑰認(rèn)證以提高安全性
好吧,我們可以使用更安全的方式而不是輸入遠(yuǎn)程 Ubuntu 服務(wù)器的密碼,那就是Key。我們不需要輸入普通密碼,從而防止我們的密碼被泄露或復(fù)制,以防我們使用一些未知的計(jì)算機(jī)連接遠(yuǎn)程服務(wù)器。
使用key的原理其實(shí)很簡(jiǎn)單。我們只需要根據(jù)公鑰和私鑰的概念在客戶端機(jī)器上創(chuàng)建一個(gè)密鑰對(duì)。所以,基本上,我們將創(chuàng)建兩個(gè)密鑰一個(gè)是公鑰用來加密明文將其轉(zhuǎn)換成密文,而私鑰用于由接收器解密密文閱讀的消息。
簡(jiǎn)而言之,私鑰就像一把必須保密的門鑰匙,因?yàn)槟梢杂盟鼇斫怄i遠(yuǎn)程計(jì)算機(jī)的門。公鑰基本上是您在服務(wù)器門上構(gòu)建的鑰匙孔。因此,這個(gè)概念類似于我們房子里的真實(shí)門,每個(gè)人都可以看到門的鑰匙孔,但打開的鑰匙只有房子的主人。
為 SSH 生成公鑰和私鑰
- 在本地系統(tǒng)上打開命令行 -終端或提示。
- 輸入將生成密鑰的SSH 密鑰生成器命令ssh-keygen
- 按Enter鍵。
- (可選),然后你就可以輸入 一個(gè) 在密碼以便建立連接時(shí)添加額外的障礙。否則,如果您不希望系統(tǒng)要求額外的密碼查詢,只需按兩次Enter鍵即可。
- 最終, 在您的用戶目錄下的隱藏目錄“.ssh”中創(chuàng)建了兩個(gè)文件: “id_rsa” 和 “id_rsa.pub”。文件名中的“rsa”代表所使用的密碼學(xué),但您不必?fù)?dān)心。文件擴(kuò)展名“ pub ”代表“公共”,因此它是公鑰。而沒有任何擴(kuò)展名的文件是您的私鑰。
將公鑰復(fù)制到服務(wù)器
現(xiàn)在,要使用密鑰對(duì)建立連接,請(qǐng)將您生成的公鑰復(fù)制到此處的 Ubuntu 服務(wù)器。
我們不需要手動(dòng)訪問服務(wù)器,我們也可以使用 SSH 來復(fù)制密鑰。
使用以下命令將 SSH 公鑰復(fù)制到服務(wù)器:
在 Linux 上
- ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip-address
注意:使用遠(yuǎn)程服務(wù)器的實(shí)際值更改用戶名和 IP 地址。
在 Windows 上
- scp C:\Users\windwos-username\.ssh\id_rsa.pub username@ip-address:~/.ssh/authorized_keys
注意:將windows-username替換為您保存公鑰的當(dāng)前用戶,而username@ip-address需要遠(yuǎn)程 Linux 用戶和 IP 地址。
在 macOS 上:
- brew install ssh-copy-id
- ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip-address
“ -i ”表示要復(fù)制身份,即指定的公鑰。復(fù)制當(dāng)然是通過 SSH 完成的,因此我們需要密碼遠(yuǎn)程機(jī)器一次,這里。
復(fù)制密鑰后,您可以使用您的私鑰連接遠(yuǎn)程查看系統(tǒng),而無需輸入任何類型的密碼。但是,請(qǐng)確保您的私鑰位于只有您可以訪問的安全位置。
要使用私有,這里是命令語(yǔ)法:
- ssh -i "path-to-private-key" username@ip-address
path-to-private-key:替換為您保存生成的私鑰的路徑。
而用戶名和IP 地址用于遠(yuǎn)程服務(wù)器系統(tǒng)詳細(xì)信息。
通過這種方式,我們可以使用身份驗(yàn)證密鑰來獲得無密碼連接,請(qǐng)記住一件事,只有在您隨身攜帶私鑰文件時(shí)才有可能??梢栽诠倬W(wǎng)了解更多關(guān)于SSH 的信息。