在 SSH 中,“密钥”指的是一种用于身份验证的加密方式,用于代替传统的用户名+密码登录,更安全、更自动化。它是使用非对称加密原理的一对“钥匙”:
✅ 密钥对 = 公钥 + 私钥
密钥 | 作用 | 存放位置 | 是否保密 |
---|---|---|---|
🔐 私钥 | 相当于你的“身份”,用于解密 | 存在本地电脑(例如:~/.ssh/id_rsa ) |
必须保密 |
🔓 公钥 | 提供给服务器,服务器用它加密验证信息 | 存在远程服务器(如:~/.ssh/authorized_keys ) |
可公开 |
原理简述:
- 你先生成一对密钥(私钥 + 公钥)
- 将公钥复制到服务器
- 登录时,服务器使用公钥验证你的私钥身份,过程自动完成,无需输入密码
✅ 为什么密钥比密码更安全?
特性 | 密码登录 | 密钥登录 |
---|---|---|
被暴力破解风险 | 高 | 极低 |
安全性 | 一般(可能被截获) | 高(加密通信) |
自动化(脚本) | 不方便 | 可无密码自动连接 |
建议使用 | ❌ | ✅ 强烈推荐 |
✅ 如何生成和使用 SSH 密钥(Linux/macOS)
1. 生成密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
按回车使用默认路径(~/.ssh/id_rsa
),也可以设置密码(用于加密私钥)
2. 上传公钥到服务器:
ssh-copy-id user@your_server_ip
或者手动将 ~/.ssh/id_rsa.pub
内容复制到服务器的:
~/.ssh/authorized_keys
3. 使用密钥连接服务器:
ssh -i ~/.ssh/id_rsa user@your_server_ip
✅ Windows 用户怎么办?
✅ 多个密钥怎么办?
你可以使用配置文件来指定不同服务器用不同私钥:
编辑 ~/.ssh/config
:
Host myserver
HostName 192.168.1.100
User root
IdentityFile ~/.ssh/my_private_key
登录时只需输入:
ssh myserver
✅ 小结一句话:
SSH 密钥是比密码更安全的远程身份验证方式,生成一次,配置好后可以一键登录,是管理服务器的标准做法。
除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!