SSH 密钥对登录(Ed25519)配置

在服务器运维中,SSH 是最常用的远程管理方式。相比传统的用户名 + 密码登录,SSH 密钥对登录在安全性和便捷性上都有明显优势。
本文将以 Ed25519 算法为例,介绍一套通俗易懂、可直接照做的 SSH 密钥对登录配置流程。
一、为什么选择 Ed25519
Ed25519 是当前 SSH 中非常推荐的密钥算法,主要优点有:
- 安全性高:基于现代椭圆曲线密码学
- 密钥长度短:但安全强度不输 RSA 4096
- 性能好:生成和验证速度快
- 配置简单:OpenSSH 默认支持
如果你的系统支持 Ed25519(基本所有新系统都支持),优先选择它。
二、SSH 密钥对登录的基本原理
SSH 密钥对由两部分组成:
- 私钥(Private Key)
保存在本地电脑,只属于你本人,绝不能泄露 - 公钥(Public Key)
存放在服务器上,用于验证你的身份
登录时流程如下:
- 客户端使用私钥向服务器发起认证请求
- 服务器使用已保存的公钥进行验证
- 验证成功后直接登录,无需输入服务器密码
三、本地生成 Ed25519 密钥对
在本地终端执行以下命令:
ssh-keygen -t ed25519 -a 64 -C "your_comment"
参数说明:
-t ed25519:指定使用 Ed25519 算法-a 64:增加密钥派生轮数,提高私钥安全性-C:注释信息,通常写邮箱或用途说明
执行后会提示:
- 密钥保存路径(默认即可)
- 是否设置私钥密码(强烈建议设置)
生成完成后,默认文件位置为:
- 私钥:
~/.ssh/id_ed25519 - 公钥:
~/.ssh/id_ed25519.pub
四、将公钥部署到服务器
方法一:使用 ssh-copy-id(推荐)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
该命令会自动将公钥写入服务器的 authorized_keys 文件中。
方法二:手动配置
-
查看本地公钥内容:
cat ~/.ssh/id_ed25519.pub -
登录服务器,将公钥追加到文件:
~/.ssh/authorized_keys -
设置正确的权限:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
五、使用密钥方式登录服务器
执行以下命令测试登录:
ssh -i ~/.ssh/id_ed25519 user@server_ip
如果没有报错并成功登录,说明密钥登录已配置成功。
六、服务器端加强安全配置(推荐)
在确认密钥登录可用后,可以关闭密码登录,提升服务器安全性。
编辑服务器 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
确保以下配置存在或修改为:
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin no
保存后重启 SSH 服务:
sudo systemctl restart sshd
⚠️ 注意:一定要先确认当前会话可以使用密钥登录,再关闭密码登录。
七、使用 ssh-agent 简化登录体验
如果私钥设置了密码,可以使用 ssh-agent 避免频繁输入。
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
之后在当前会话中连接服务器将不再重复输入私钥密码。
八、配置 SSH 客户端快捷登录(可选)
编辑本地 ~/.ssh/config 文件:
Host myserver
HostName server_ip
User user
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
以后只需执行:
ssh myserver
九、常见问题排查
1. 提示 Permission denied (publickey)
重点检查:
~/.ssh权限是否为700authorized_keys权限是否为600- 公钥是否放在正确用户下
sshd_config中是否启用了PubkeyAuthentication
2. 查看详细调试信息
ssh -v user@server_ip
可帮助快速定位认证失败原因。
十、总结
使用 Ed25519 SSH 密钥对登录可以显著提升服务器安全性,并减少日常运维的登录成本。
完整流程可以概括为:
- 本地生成 Ed25519 密钥对
- 将公钥部署到服务器
- 验证密钥登录
- 关闭密码登录,强化安全
这套配置方式简单、高效、适用于绝大多数 Linux 服务器,是现代运维的标准做法。
版权声明:
作者:Gweek
链接:https://bbs.geek.nyc.mn/archives/245
来源:Gweek postHub
文章版权归作者所有,未经允许请勿转载。

共有 0 条评论