SSH 密钥对登录(Ed25519)配置

RNMTnkuK3uiPq8pNg0mTmh7gctVkFoc8.webp

在服务器运维中,SSH 是最常用的远程管理方式。相比传统的用户名 + 密码登录,SSH 密钥对登录在安全性和便捷性上都有明显优势。
本文将以 Ed25519 算法为例,介绍一套通俗易懂、可直接照做的 SSH 密钥对登录配置流程。


一、为什么选择 Ed25519

Ed25519 是当前 SSH 中非常推荐的密钥算法,主要优点有:

  • 安全性高:基于现代椭圆曲线密码学
  • 密钥长度短:但安全强度不输 RSA 4096
  • 性能好:生成和验证速度快
  • 配置简单:OpenSSH 默认支持

如果你的系统支持 Ed25519(基本所有新系统都支持),优先选择它。


二、SSH 密钥对登录的基本原理

SSH 密钥对由两部分组成:

  • 私钥(Private Key)
    保存在本地电脑,只属于你本人,绝不能泄露
  • 公钥(Public Key)
    存放在服务器上,用于验证你的身份

登录时流程如下:

  1. 客户端使用私钥向服务器发起认证请求
  2. 服务器使用已保存的公钥进行验证
  3. 验证成功后直接登录,无需输入服务器密码

三、本地生成 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 文件中。

方法二:手动配置

  1. 查看本地公钥内容:

    cat ~/.ssh/id_ed25519.pub
  2. 登录服务器,将公钥追加到文件:

    ~/.ssh/authorized_keys
  3. 设置正确的权限:

    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 权限是否为 700
  • authorized_keys 权限是否为 600
  • 公钥是否放在正确用户下
  • sshd_config 中是否启用了 PubkeyAuthentication

2. 查看详细调试信息

ssh -v user@server_ip

可帮助快速定位认证失败原因。


十、总结

使用 Ed25519 SSH 密钥对登录可以显著提升服务器安全性,并减少日常运维的登录成本。
完整流程可以概括为:

  1. 本地生成 Ed25519 密钥对
  2. 将公钥部署到服务器
  3. 验证密钥登录
  4. 关闭密码登录,强化安全

这套配置方式简单、高效、适用于绝大多数 Linux 服务器,是现代运维的标准做法。

版权声明:
作者:Gweek
链接:https://bbs.geek.nyc.mn/archives/245
来源:Gweek postHub
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>