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