SSH 密钥
什么是 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 代码推送等场景。