SSH 通过密钥登录服务器

SSH 通过密钥登录服务器

要通过 SSH 密钥登录服务器,一般分为三步:先生成密钥对,再把公钥传到服务器,最后在本地配置 ~/.ssh/config,方便以后直接连接。

一、生成密钥对

使用 ssh-keygen 生成一对 SSH 密钥,推荐使用 ed25519,安全性和性能都比较好。

ssh-keygen -t ed25519 -C "注释" -f ~/.ssh/id_ed25519

参数说明

  • -t ed25519:指定密钥类型为 ed25519
  • -C "注释":为密钥添加备注,一般可以写邮箱或用途
  • -f ~/.ssh/id_ed25519:指定密钥文件的保存路径和文件名

执行后会提示输入密码短语:

  • 可以设置密码短语,增强私钥安全性
  • 也可以直接回车留空,登录时更方便,但安全性会降低

二、把公钥传输到服务器

生成密钥后,需要把公钥上传到服务器,让服务器信任这把钥匙。

方法一:使用 ssh-copy-id(推荐)

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@example.com

参数说明

  • -i ~/.ssh/id_ed25519.pub:指定要上传的公钥文件
  • user@example.com:替换为你的服务器用户名和地址

方法二:手动添加

如果本地没有 ssh-copy-id,可以手动把公钥内容写入服务器的 authorized_keys

  1. 查看本地公钥内容:
cat ~/.ssh/id_ed25519.pub
  1. 登录服务器:
ssh user@example.com
  1. 确保服务器上有 .ssh 目录:
mkdir -p ~/.ssh
  1. 将公钥内容追加到 authorized_keys
echo "公钥内容" >> ~/.ssh/authorized_keys
  1. 设置正确权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

权限说明

  • ~/.ssh 目录权限建议为 700
  • authorized_keys 文件权限建议为 600

注意:权限不正确时,SSH 可能会忽略你的公钥。

三、编辑本地的 ~/.ssh/config 文件

为了以后连接更方便,可以在本地编辑 SSH 配置文件,把服务器信息写进去。

打开配置文件:

vim ~/.ssh/config

如果文件不存在,可以新建一个,然后添加如下内容:

Host myserver
  HostName example.com
  User root
  Port 22
  IdentityFile ~/.ssh/id_ed25519

配置说明

  • Host myserver:起一个连接别名,之后可以直接用 ssh myserver
  • HostName example.com:服务器真实地址或 IP
  • User root:登录服务器的用户名
  • Port 22:SSH 端口,默认是 22
  • IdentityFile ~/.ssh/id_ed25519:指定使用的私钥文件

使用方式

配置完成后,直接执行:

ssh myserver

即可连接服务器,无需每次都手动输入用户名、地址和密钥路径。


SSH 通过密钥登录服务器
https://blog.979909.xyz/2026/05/12/SSH-通过密钥登录服务器/
作者
nafeuy
发布于
2026年5月12日
许可协议