連接 Linux 伺服器的主要方式是透過SSH 協定。這種連接方式很安全,因為所有傳輸的資料都會被加密。要建立SSH 連接,需要在要連接的遠端伺服器和用戶端的用戶端上進行設定。有很多 SSH 連線軟體可供選擇。在 Linux 系統中,OpenSSH 是最受歡迎的,而在 Windows 系統中,人們大多使用 PuTTY。
讓我們以 Ubuntu Server 18.04 為例仔細了解伺服器配置,然後嘗試從 Linux 和 Windows 連線到伺服器。
我們所有的操作都將透過普通用戶帳戶進行。在本例中,我們建立了使用者“ mihail ”,而“ root ”帳號預設是停用的。
伺服器端設定
運行此命令設定包:
sudo apt install openssh-server
安裝完成後,確保服務正在運作。使用此命令:
systemctl status sshd
狀態「活動(運行中)」表示該服務已啟用並正常運作。
為了避免防火牆阻止傳入連接,請確保已停用它,因為我們不會在本文中配置網路防火牆。
使用此命令:
sudo ufw disable
此時您已經可以連線到伺服器。使用預設設置,伺服器允許透過基於密碼的身份驗證連接到標準連接埠 22。
Linux 上的 SSH 連接
通常,OpenSSH 用戶端預設安裝在 Linux 上,不需要額外的手動設定。可以藉助 ssh 指令從終端機建立連線。在這種情況下,參數將是遠端伺服器的使用者名稱和 IP 位址。在我們用作範例的測試伺服器上只有一個帳戶“mihail”,因此我們將使用它。
ssh [email protected]
首次連線時,您需要確認是否將伺服器的公鑰新增至資料庫,請選擇「是」。之後,您可以輸入密碼。如果連接成功,您將看到伺服器命令列介面的歡迎訊息。現在,所有命令都將在遠端伺服器上執行。
透過 Windows 進行 SSH
開啟 PuTTY 並設定連接參數。確保“連接類型”開關設定為SSH 。在「主機名稱」欄位中輸入 IP 位址,在「連接埠」欄位中輸入預設值22,然後按一下「開啟」。
首次連線時,PuTTY會要求您確認是否信任此伺服器,請點選「是」。
輸入登入名稱和密碼後,您將看到遠端伺服器的命令列。
透過金鑰進行身份驗證。提高安全級別
當用戶端嘗試透過 SSH 與伺服器建立安全連線時,在允許連線之前,伺服器需要對用戶端進行身份驗證(驗證)。如前所述,通常預設使用基於密碼的身份驗證。它不能提供強大的安全性,因為總有辦法對其進行暴力破解。此外,密碼驗證不適用於使用腳本的 SSH 連線。
對於此類任務,有一種特殊的金鑰身份驗證方法。重點是客戶端產生私鑰和公鑰,然後將公鑰發送到伺服器。之後您不需要密碼即可連接到伺服器,因為身份驗證是基於公鑰和私鑰進行的。為了提供良好的安全級別,應該限制對私鑰的存取。由於私鑰儲存在客戶端,不透過網路傳輸,因此該方法被認為更加安全。
Linux 上的金鑰驗證
讓我們藉助 ssh-keygen 實用程式軟體在客戶端上產生公鑰和私鑰。該工具將建議更改私鑰的路徑並輸入密碼以獲得額外的安全性。在所有請求中按 Enter 鍵保留所有參數的預設值。
因此,在主目錄的 .ssh 資料夾中,您將找到產生的兩個檔案:id_rsa和id_rsa.pub,其中分別包含私鑰和公鑰。
之後,您需要將公鑰發送到伺服器。為此,請將「id_rsa.pub」檔案的內容複製到伺服器上的「 ~/.ssh/authorized_keys 」檔案中。為了更方便,我們使用「 ssh-copy-id」工具。輸入伺服器的登入名稱和IP位址,就像進行普通連線一樣。輸入密碼後,客戶端的公鑰將自動複製到伺服器。運行以下命令:
ssh-copy-id [email protected]
完成所有操作後,伺服器將不再需要輸入密碼。
Windows 上的金鑰驗證
開啟PuTTYGEN並點擊「生成」。要產生密鑰,只需將滑鼠移到螢幕上,該工具就會隨機產生密鑰。
金鑰產生後,點擊“儲存私鑰”,將其儲存到磁碟上名為“私鑰”的檔案中。您可以設定任意路徑,但稍後需要在 PuTTY 中指定路徑。然後從視窗頂部複製公鑰。
我們只需將公鑰複製到終端即可發送。開啟PuTTY並像往常一樣連接到伺服器。現在,我們建立「.ssh/authorized_keys」文件,並限制其他使用者存取該文件,使其僅對建立者可見。
mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
建立檔案後,將客戶端的公鑰放入其中。在前一個階段我們將公鑰複製到剪貼簿。若要將剪貼簿中的內容記錄到檔案中,請使用 cat 指令和輸出重定向。
cat > .ssh/authorized_keys
輸入指令後,在終端機視窗中按滑鼠右鍵,貼上剪貼簿中的內容。若要確認輸入,請按下「Ctrl+D」快速鍵並中斷與伺服器的連線。
現在讓我們在Putty中指定私鑰的路徑並再次連接到伺服器。
從現在開始,為了連接到伺服器,您只需要輸入使用者名稱。如果您嘗試從沒有正確私鑰的另一台裝置連接到伺服器,伺服器將要求輸入密碼。設定基於金鑰的身份驗證後,您可以禁止透過密碼存取。