Linux 本地生成公钥访问远程服务器

配置 SSH 密钥登录(公钥认证)替代传统密码登录,是实现秒连远程服务器的标配操作。在 Linux 上完成密钥生成与配置只需三步。

第一步:生成 Ed25519 密钥对

目前不推荐使用老旧的 rsa 算法。推荐使用更安全、更小巧、计算更快的 Ed25519 算法。

打开终端,运行:

ssh-keygen -t ed25519 -C "your name"
  • -t ed25519:指定使用 Ed25519 算法。
  • -C:添加注释(通常写名字或邮箱),方便辨识。

执行过程中会弹出两个提示:

  1. Enter file in which to save the key…:直接回车,密钥默认保存到 ~/.ssh/id_ed25519
  2. Enter passphrase…:直接回车(留空),即不设置密码短语。

完成后,~/.ssh/ 目录下会多出两个文件:

  • id_ed25519私钥):相当于你的主钥匙,绝对不能泄露给任何人
  • id_ed25519.pub公钥):相当于一把锁,需要放到服务器上。

第二步:将公钥上传到远程服务器

Linux 提供了 ssh-copy-id 工具,可一键将公钥追加到服务器对应位置。

在本地终端执行(将 userserver_ip 替换为实际的用户名和 IP):

ssh-copy-id user@server_ip

注意:此处会提示输入最后一次服务器的传统登录密码。输入成功后,公钥会自动写入服务器的 ~/.ssh/authorized_keys 文件中。

第三步:免密登录

配置完成后,直接登录即可:

ssh user@server_ip

无需输入密码,直接进入服务器。