什么是 SSH 密鑰
SSH 密鑰就像是你電腦的“身份證”和“鑰匙”,
用來安全登錄另一臺電腦(服務器),而不需要每次輸入密碼。
SSH 密鑰是一種安全登錄遠程服務器的方式,由一對加密的“鑰匙”組成:一個公鑰 + 一個私鑰。
- 🔓 公鑰(可以公開)
- 🔐 私鑰(必須保密,只保存在你電腦上)
原理
想象你是遠程服務器門口的保安
你說:“我每天都要進這棟樓(服務器),但我不想每次都輸密碼。”
于是你用了 SSH 密鑰登錄:
- 你把公鑰(門鎖)裝在服務器上
- 你保留私鑰(鑰匙)在自己電腦上
以后你要進門(遠程登錄),你就:
- 拿出私鑰(鑰匙)
- 服務器用公鑰(門鎖)來驗證你是不是“主人”
- 對上了,開門成功;對不上,禁止進入
這就叫 SSH 密鑰登錄!
-
你用命令生成一對密鑰:
ssh-keygen
會生成兩個文件:
id_rsa
:私鑰(存自己電腦)id_rsa.pub
:公鑰(復制到服務器)
-
當你用 SSH 登錄服務器時:
ssh user@服務器IP
- 系統用私鑰進行身份驗證
- 如果對得上,登錄成功;不對就拒絕
它基于“非對稱加密”,是一種非常安全的身份驗證方式。
SSH 密鑰的用途
用途 | 說明 |
---|---|
無密碼登錄服務器 | 不用每次輸入密碼就能遠程登錄 |
自動化腳本 | 在自動化運維、部署腳本中免密登錄遠程主機 |
Git 推送代碼 | 像 GitHub、GitLab 要你設置 SSH 密鑰后才能安全推送代碼 |
多臺電腦之間遠程訪問 | 管理云服務器(阿里云、騰訊云、AWS)時必備 |
增強安全性 | 密鑰比密碼更安全,防止暴力破解 |
舉例
你用阿里云/騰訊云租了一臺服務器,系統是 Ubuntu。
如果用賬號密碼登錄:
ssh root@8.8.8.8
# 然后輸入密碼
如果配置好 SSH 密鑰后:
ssh root@8.8.8.8
# 直接就進去了,不用輸密碼
SSH 密鑰 vs 密碼登錄
比較項 | 密碼登錄 | SSH 密鑰登錄 |
---|---|---|
安全性 | 較低(可能被猜) | 很高(幾乎不可能暴力破解) |
方便性 | 需要每次輸入密碼 | 免密碼,自動登錄 |
自動化支持 | 不方便寫腳本 | 適合自動化部署 |
是否易被盜用 | 密碼可能被釣魚 | 私鑰泄露才有風險(可設置加密保護) |
總結
SSH 密鑰是一種更安全、更省心的遠程登錄方式,用一把“數字鑰匙”代替輸入密碼,常用于遠程服務器登錄和 Git 代碼推送等場景。