如何在 Windows 10 中生成 SSH 金鑰?
簡介
SSH,即安全外殼,是一種加密協議,它透過不安全的網路(例如網際網路)在兩臺計算機之間提供安全的連線。它允許使用者遠端安全地訪問和控制另一臺計算機或伺服器。SSH 透過加密兩臺計算機之間傳送的所有資料來工作,包括用於登入的任何使用者名稱和密碼。
為了在兩臺計算機或伺服器之間建立安全的 SSH 連線,SSH 金鑰是必需的。SSH 金鑰是一對加密金鑰——一個公鑰和一個私鑰。
私鑰儲存在使用者的本地計算機上,而公鑰則上傳到正在訪問的遠端伺服器或計算機上。當嘗試透過 SSH 安全地連線到其他裝置時,公鑰充當使用者本地裝置的身份標識。
瞭解 SSH 金鑰生成過程
什麼是 SSH 金鑰?
SSH 金鑰,也稱為公鑰加密金鑰,是一種用於保護兩臺機器之間通訊的加密程式碼。它包含兩個金鑰——一個儲存在您本地機器上的私鑰和一個與遠端伺服器共享的公鑰。這些金鑰協同工作,透過加密和解密資料來建立安全的通訊。
SSH 金鑰是如何工作的?
當您嘗試使用 SSH 連線到遠端伺服器時,您的本地機器會向伺服器傳送其公鑰以進行身份驗證。如果伺服器識別並信任您的公鑰,它將生成一條唯一的加密訊息,該訊息只能使用儲存在您本地機器上的私鑰解密。
為什麼需要生成 SSH 金鑰?
在使用遠端伺服器時,生成 SSH 金鑰至關重要,因為它可以在機器之間啟用安全通訊,而無需密碼。密碼可能會被洩露或盜取,但由於 SSH 金鑰是特定於每個使用者/機器組合的唯一程式碼,因此它們比傳統的基於密碼的身份驗證方法提供了更強大的安全性。
準備在 Windows 10 中生成 SSH 金鑰
檢查您的系統上是否安裝了 OpenSSH 客戶端。
在生成 SSH 金鑰之前,您需要確保您的 Windows 10 系統上安裝了 OpenSSH 客戶端。要檢查它是否已安裝,您可以使用以下步驟 -
以管理員身份開啟 PowerShell,方法是按“Windows + X”鍵,然後從選項中選擇“Windows PowerShell(管理員)”。
PowerShell 開啟後,鍵入命令 `ssh` 並按 Enter。
如果 OpenSSH 客戶端已安裝,您將看到其命令列表及其用法。
如果尚未安裝,您將收到一條錯誤訊息,指出 `ssh` 命令未被識別。
如果尚未安裝,則安裝 OpenSSH 客戶端。
要在 Windows 10 上安裝 OpenSSH 客戶端 -
透過單擊“開始”選單中的齒輪圖示或按“Windows + I”進入“設定”。
點選“應用”。
向下滾動並點選“可選功能”。
點選“+ 新增功能”。
從列表中查詢並選擇“OpenSSH 客戶端”。
點選安裝。
安裝過程可能需要幾分鐘,具體取決於您的網路速度和系統規格。完成後,您可以透過按照上面步驟 2 中檢查其是否已安裝的方式驗證 OpenSSH 客戶端是否已成功安裝——這次應該不會返回任何錯誤;相反,將顯示其可用命令的列表,表明它已在您的 Windows 10 機器上正確設定。
在 Windows 10 中生成 SSH 金鑰
確保您的 Windows 10 系統中已安裝 OpenSSH 客戶端後,您可以繼續生成 SSH 金鑰。此過程涉及使用 PowerShell(Windows 的命令列介面工具)生成金鑰對。以下步驟將指導您完成該過程 -
以管理員身份啟動 PowerShell
要以管理員身份啟動 PowerShell -
按“開始”按鈕並搜尋“PowerShell”。
右鍵單擊“Windows PowerShell”並選擇“以管理員身份執行”。
以管理員身份進入 PowerShell 後,您將能夠執行需要提升許可權的命令。
鍵入生成金鑰對的命令
在 PowerShell 中,鍵入以下命令以生成您的 SSH 金鑰對 -
ssh-keygen -t rsa -b 4096
此命令將建立一個新的 RSA(Rivest-Shamir-Adleman)金鑰對,位長為 4096,這比較短的金鑰更安全。您可以根據需要向上或向下調整此值。
選擇儲存金鑰對的位置
鍵入上述命令後,PowerShell 將提示您輸入要儲存金鑰對的檔案位置。您可以按 Enter 接受預設位置或指定您自己的目錄路徑。
例如 -
Enter file in which to save the key (/c/Users/username/.ssh/id_rsa):
預設情況下,SSH 金鑰儲存在 `C:\Users\.ssh` 下。您可以按 Enter 接受此路徑,或者在需要時輸入不同的檔案位置。
設定密碼以增強安全性
然後,系統將提示您輸入可選密碼以增強安全性。密碼就像保護您的私鑰的密碼。
如果有人獲取了您的私鑰,他們將無法在不知道密碼的情況下使用它。
Enter passphrase (empty for no passphrase): Enter same passphrase again:
您可以選擇設定複雜且唯一的密碼,也可以將其留空以不設定密碼。
確認金鑰已成功生成
輸入您首選的檔案位置和可選密碼後,PowerShell 將生成金鑰對並顯示確認訊息 -
Your identification has been saved in /[filepath]/id_rsa. Your public key has been saved in /[filepath]/id_rsa.pub. The key fingerprint is: [unique code] The key's randomart image is: +--[ RSA 4096]----+ |[ascii art] | +-----------------+
將您的公鑰新增到遠端伺服器
從本地計算機複製您的公鑰
有兩種方法可以從本地計算機複製您的公鑰:使用 PowerShell 命令或使用記事本或任何其他文字編輯器手動複製它。
要使用 PowerShell 複製您的公鑰,首先以管理員身份開啟 PowerShell。然後執行以下命令 -
powershell Get-Content ~/.ssh/id_rsa.pub | ssh user@host 'cat >> .ssh/authorized_keys'
將“user”和“host”替換為您要訪問的遠端伺服器的使用者名稱和 IP 地址。此命令將從您的本地計算機複製您的公鑰,並將其附加到遠端伺服器上的 authorized_keys 檔案中。
將您的公鑰貼上到遠端伺服器
透過 PowerShell 或手動複製公鑰後,最後一步是將其貼上到每個遠端伺服器的 authorized_keys 檔案中,以便它們識別並接受來自此特定 SSH 金鑰對的連線。大多數 Linux 伺服器將在此檔案位於 `~/.ssh/authorized_keys` 中。
如果此檔案尚不存在,請在該位置建立一個。現在,使用 SFTP 客戶端或 PuTTY 的 PSCP 實用程式(允許在兩臺計算機之間安全複製檔案)之類的工具將公鑰複製到遠端伺服器。
結論
生成 SSH 金鑰對並將您的公鑰新增到遠端伺服器是確保計算機與遠端伺服器之間安全有效通訊的關鍵步驟。
上述過程概述瞭如何使用 OpenSSH 客戶端在 Windows 10 上輕鬆生成 SSH 金鑰對,透過 PowerShell 或使用記事本等文字編輯器手動複製公鑰將其新增到遠端伺服器,最後將您的公鑰貼上到這些遠端伺服器中的每個 authorized_keys 檔案中。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP