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