Appearance
ssh 免密码登陆
设置 ssh 免密码登陆
1. 目标机器
1.1 修改 sshd 配置文件
bash
# etc/ssh/sshd_config
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径
PasswordAuthentication no # 可选,关闭密码登录,提高安全性1
2
3
4
2
3
4
1.2 重启 sshd 服务
bash
systemctl restart sshd1
2.客户端机器
2.1 生成密钥对
tips
如果已经有密钥对,跳过此步
bash
ssh-keygen -t rsa
# ssh-keygen -t <密钥类型> [其他选项]1
2
3
2
3
密钥类型
| 密钥类型参数 | 密钥类型 | 描述 | 示例 |
|---|---|---|---|
| rsa | RSA | 最常用的传统算法,兼容性好,但密钥较长 | ssh-keygen -t rsa -b 4096 |
| ed25519 | EdDSA (Ed25519) | 当前推荐,安全性高,密钥短,性能好 | ssh-keygen -t ed25519 |
| ecdsa | ECDSA | 椭圆曲线算法,密钥较短,但存在兼容性问题 | ssh-keygen -t ecdsa -b 521 |
会生成一对密钥 id_rsa.pub id_rsa (如果是ed25519,会生成 id_ed25519.pub id_ed25519
目录:
- Windows 系统一般在
C:\Users\用户名\.ssh\目录下 - Linux 系统中,一般中
~/.ssh/目录下
2.2 将公钥发送到目标机器
ssh-copy-id 方式
bash
# ssh-copy-id -i PUB_PATH root@SERVER_IP
ssh-copy-id -i /root/.ssh/id_rsa.pub root@8.8.8.81
2
2
手动拷贝方式
文本方式打开 id_rsa.pub 文件,将公钥复制到目标机器的 .ssh/authorized_keys 中
2.3 测试验证
bash
ssh root@8.8.8.81
3.使用别名登陆,懒得输入IP (可选)
3.1 编辑 ssh config
Windows
C:\Users\用户名\.ssh\config 没有的话新建一个
conf
Host HK01
HostName 8.8.8.8
User root
Port 22
IdentityFile C:\Users\aaa\.ssh\id_rsa # 这里填私钥到目录1
2
3
4
5
2
3
4
5
Linux
~/.ssh/config 没有的话新建一个
conf
Host HK01
HostName 8.8.8.8
User root
Port 22
IdentityFile ~/.ssh/id_rsa # 这里填私钥到目录1
2
3
4
5
2
3
4
5
3.2 使用
设置好后,可以用 Host 名称进行登录,省掉填 IP
bash
ssh HK011