在日常開發中,SSH可能是一個家喻戶曉的工具。SSH的全稱為Secure Shell,是一種加密網絡協議。可以通過SSH協議進行安全的遠程登錄和其他網絡服務。
默認情況下,SSH是以用戶名和密碼的方式進行驗證。然而,加入私鑰是一種更為安全的驗證方式。本文將詳細介紹如何為SSH配置私鑰,以確保您的連接更加安全。
一、生成和保存SSH密鑰
在開始之前,確保您已經安裝了SSH客戶端。Windows下推薦使用PuTTY,Mac或Linux下推薦使用Terminal。
步驟1:打開SSH客戶端,打開終端窗口,然後使用以下命令生成密鑰:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
其中,“-t”參數指定算法類型,對於此示例中的RSA算法,“-b”指定密鑰長度為4096位,而“-C”選項指定一個注釋來識別密鑰的不同用途。在此處替換“your_email@example.com”為您的電子郵件地址,當在同一台電腦上生成多個密鑰時,需要使用唯一的注釋來識別每個密鑰。
步驟2:按提示進行操作,包括選擇路徑和輸入口令等。默認情況下,密鑰對存儲在當前用戶的主目錄下的.ssh目錄中。公共密鑰保存在.ssh/id_rsa.pub文件中,而私鑰保存在.ssh/id_rsa文件中。
步驟3:確保.ssh文件夾的權限設置合理。使用以下命令檢查權限:
ls -lh ~/.ssh chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa
最後一個命令將您的私鑰權限設置為僅允許當前用戶進行讀寫操作,確保私鑰的安全性。
二、添加SSH公鑰至遠程服務器
本節將介紹如何將您的公鑰添加到遠程服務器。這將允許您使用私鑰對遠程服務器進行身份驗證,而無需每次輸入密碼。
步驟1:使用以下命令將公鑰添加到遠程服務器上的授權密鑰文件中:
ssh-copy-id username@remote_host
其中,“username”是您在服務器上的用戶名,“remote_host”是您的服務器地址。執行該命令後,系統會詢問您該用戶的密碼。正確輸入密碼後,公鑰將自動添加到遠程服務器上的授權密鑰文件中。
步驟2(可選):在服務器上手動添加公鑰。如果您無法使用“ssh-copy-id”命令,則可以手動將公鑰添加到授權密鑰文件中。將公鑰的內容複製到.ssh/authorized_keys文件中:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
三、驗證SSH私鑰
現在,您已經將公鑰添加到遠程服務器上,下面是如何測試公鑰是否正常工作的方式:
步驟1:使用以下命令連接到遠程服務器:
ssh username@remote_host
其中,“username”是您在服務器上的用戶名,“remote_host”是您的服務器地址。如果在連接時被要求輸入密碼,則表示未正確設置SSH密鑰。
步驟2:如果您在登錄時使用了口令來保護您的密鑰,則需要手動輸入口令。如果消息類似於以下消息,則表示您已經成功連接到遠程服務器:
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-77-generic x86_64) Last login: Sat Jul 31 21:52:45 2021 from localhost
恭喜您,現在已經為SSH配置了私鑰!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/290759.html