SSH 服务器

如何为电脑创建 SSH 登录密钥并设置服务器别名

Danny · 2026年9月6日 · 10 分钟阅读

本文讲透 SSH 密钥登录:为什么推荐 Ed25519,以及 macOS、Linux、Windows 三种系统如何生成密钥对、把公钥配置到 VPS、用 SSH Agent 省去重复输入密码,最后设置 SSH Alias,让 ssh my-vps 一条命令直连服务器。多服务器管理和常见问题一并覆盖。

SSH 密钥登录(SSH Key Authentication)是目前连接云服务器最安全、最推荐的方式之一。

传统登录方式依赖“用户名 + 密码”,密码一旦泄露或被暴力破解,服务器就等于敞开大门。SSH 密钥改用一对文件完成身份验证,本地保留私钥(Private Key),服务器上存放公钥(Public Key),私钥不出本地,验证过程也不在网络里传输密码。

目前主流云服务器厂商,例如 AWS、阿里云 ECS、腾讯云 CVM、Hostinger VPS、DigitalOcean、Hetzner,都推荐使用 SSH Key 登录,部分平台甚至默认关闭密码登录。

本文将分别介绍在 macOS、Linux、Windows 三种系统里创建 SSH 登录密钥、把公钥配置到 VPS,并设置 SSH 别名。配置完成后,只需要输入 ssh my-vps 就能直接连上服务器,不用再敲 ssh root@服务器IP 这样一长串命令。

SSH 密钥登录原理

SSH 密钥由两个文件组成:私钥和公钥。创建密钥时,系统会同时生成这两个文件,它们的内容一一对应。公钥可以放心交给服务器,私钥必须一直留在自己的电脑里。

SSH 密钥认证流程

你的电脑

持有私钥 id_ed25519,绝不外传

SSH 认证

客户端用私钥签名,服务器验证

VPS 服务器

authorized_keys 保存公钥,验证通过后放行登录

私钥(Private Key)

私钥文件叫 id_ed25519,作用是证明“你就是你”。它只保存在自己的电脑里,例如 macOS 的 /Users/username/.ssh/id_ed25519,Windows 的 C:\Users\username\.ssh\id_ed25519

私钥绝对不能上传到服务器,不能发送给任何人,也不能提交到 GitHub 仓库。谁拿到你的私钥,谁就能登录你的服务器。

公钥(Public Key)

公钥文件叫 id_ed25519.pub,内容是一行以 ssh-ed25519 开头的字符串,例如:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAxxxx user@computer

公钥可以安全地上传到 VPS,服务器会把它保存到对应用户目录下的 ~/.ssh/authorized_keys 文件里。登录时服务器用这把公钥验证你的签名。

为什么推荐 Ed25519?

创建 SSH Key 时常见算法有三种:RSA、ECDSA、Ed25519。其中 RSA 历史最久、兼容性最广,ECDSA 依赖系统随机数质量,曾出现过侧信道风险。目前新建密钥推荐直接用 Ed25519,它密钥更短、速度更快、安全性也更高,而且现代 OpenSSH 都支持。

对比项RSAEd25519
密钥长度较长(默认 3072 位起)很短(256 位)
安全性更高,基于更成熟的现代曲线
签名性能较慢更快
文件大小
推荐程度一般,主要用于兼容老系统推荐,新建密钥首选

所以本文后面创建密钥统一使用 ssh-keygen -t ed25519 命令。如果你只需要连接一些很老的服务或设备,再单独考虑 RSA。

macOS 创建 SSH Key

macOS 自带 OpenSSH,不需要安装任何额外软件,打开终端就能直接生成密钥。

第一步:打开 Terminal

打开 Launchpad,进入 Other 文件夹,点击 Terminal。更快的方式是按 Command + Space 打开聚焦搜索,输入 Terminal 回车。

第二步:生成 SSH Key

在终端输入下面的命令并回车:

ssh-keygen -t ed25519

系统会提示保存位置:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/你的用户名/.ssh/id_ed25519):

默认路径就是 /Users/你的用户名/.ssh/id_ed25519,直接按 Enter 使用默认值即可。

第三步:设置 Passphrase

接着终端会提示 Enter passphrase (empty for no passphrase):,要求输入一个密码,并再次输入确认。

这个 Passphrase 不是 VPS 密码,也不是 macOS 登录密码,它是保护你电脑里私钥文件的密码。即使 id_ed25519 文件被别人复制走,没有 Passphrase 也无法使用。第一次配置建议设置一个,输入两遍相同的密码,然后回车完成。

第四步:确认生成的文件

进入 SSH 文件夹查看:

cd ~/.ssh
ls

应该能看到两个文件:id_ed25519(私钥)和 id_ed25519.pub(公钥)。

第五步:复制公钥

执行下面的命令,终端会打印出公钥内容:

cat ~/.ssh/id_ed25519.pub

输出类似 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBxxxxx username@MacBook,选中整行复制。之后到 VPS 控制台的 SSH Keys 页面,点 Add SSH Key,把公钥粘贴进去保存。

Linux 创建 SSH Key

Linux(Ubuntu、Debian、CentOS 等发行版)流程与 macOS 基本一致,只是默认路径变成了 /home/username/.ssh/id_ed25519

第一步:生成密钥

打开终端执行:

ssh-keygen -t ed25519

第二步:确认保存位置

提示保存路径时直接按 Enter,使用默认的 /home/username/.ssh/id_ed25519

第三步:设置 Passphrase

终端提示 Enter passphrase 时,输入一个用于保护私钥的密码并再次确认。同一个提示出现两次,两次输入一致即可。

第四步:查看公钥

执行下面的命令并复制输出内容:

cat ~/.ssh/id_ed25519.pub

此时 ~/.ssh/ 目录下应该有两个文件:id_ed25519 是私钥,id_ed25519.pub 是公钥。

Windows 创建 SSH Key

Windows 过去通常要装 PuTTY 这类工具,但 Windows 10 和 Windows 11 已经内置了 OpenSSH,推荐直接使用 PowerShell,一行命令都不用额外安装。

第一步:打开 PowerShell

在开始菜单搜索 PowerShell,打开即可。

第二步:生成 SSH Key

在 PowerShell 里输入:

ssh-keygen -t ed25519

第三步:确认保存位置

提示 Enter file in which to save the key 时直接按 Enter,使用默认路径 C:\Users\你的用户名\.ssh\id_ed25519

第四步:设置 Passphrase

按提示输入保护私钥的密码,再输入一次确认。

第五步:确认生成的文件

打开文件资源管理器,进入 C:\Users\你的用户名\.ssh\,可以看到 id_ed25519id_ed25519.pub 两个文件。

第六步:复制公钥

回到 PowerShell 执行:

type $env:USERPROFILE\.ssh\id_ed25519.pub

复制输出的一整行公钥内容,下一步会用到。

把 SSH Key 添加到 VPS

无论你用的是 Hostinger、阿里云、腾讯云还是 AWS,控制台添加 SSH Key 的流程基本一样:进入 VPS 控制台,找到 SSH Keys 入口,点 Add SSH Key,填写名称并粘贴公钥,保存即可。

常见错误 Warning

粘贴到服务器控制台的一定是 id_ed25519.pub 里的公钥内容,绝不能把 id_ed25519 私钥文件传上去。私钥一旦上传或外泄,服务器安全就等于失效了。

各家面板的填写项大同小异,例如名称填 My MacBook SSH Key,公钥框粘贴以 ssh-ed25519 开头的整行内容。保存后,服务器会把公钥写入对应用户的 ~/.ssh/authorized_keys,例如 root 用户就是 /root/.ssh/authorized_keys。部分平台在创建 VPS 实例时也支持直接勾选已有 SSH Key,新机器创建完就能免密登录。

第一次 SSH 登录测试

公钥配置好后,用用户名加服务器 IP 测试登录:

ssh root@123.123.123.123

root 换成你的实际用户名,123.123.123.123 换成服务器公网 IP。第一次连接时终端会提示确认服务器指纹:

Are you sure you want to continue connecting (yes/no)?

输入 yes 回车。如果你创建密钥时设置了 Passphrase,这里会出现 Enter passphrase for key:,输入创建 SSH Key 时设置的密码即可登录。看到服务器的命令行提示符,说明 SSH 密钥登录已经生效。

配置 SSH Agent,避免重复输入密码

设置了 Passphrase 后,每次 SSH 登录都要重新输入一遍,比较麻烦。启用 SSH Agent 可以把私钥加载到内存里,本次会话内不再重复询问。

macOS 添加私钥并写入钥匙串:

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

再编辑 ~/.ssh/config,加入下面的配置:

Host *
AddKeysToAgent yes
UseKeychain yes

之后 macOS 会自动把密钥加入 Agent 并保存在钥匙串里。

Linux 先启动 ssh-agent 再添加私钥:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Windows 在 PowerShell 里把 ssh-agent 服务设为自动启动并开启,然后添加私钥:

Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519

设置 SSH 登录别名

当你同时管理多台 VPS,比如腾讯云服务器、阿里云 ECS、Hostinger VPS、AWS EC2,每次都敲 ssh root@123.123.123.123 不仅麻烦,还容易输错 IP。SSH 的配置文件 ~/.ssh/config 可以给每台服务器设置一个简短别名,之后输入 ssh my-vps 就能登录。

macOS / Linux 设置 SSH Alias

配置文件是 ~/.ssh/config,不存在就先创建,然后用 nano 打开:

touch ~/.ssh/config
nano ~/.ssh/config

在文件里添加一台服务器的配置:

Host my-vps
HostName 123.123.123.123
User root
IdentityFile ~/.ssh/id_ed25519

保存退出(nano 里按 Control + O 保存,Control + X 退出)。以后输入 ssh my-vps,等同于执行 ssh root@123.123.123.123 -i ~/.ssh/id_ed25519

Windows 设置 SSH Alias

Windows 的配置文件在 C:\Users\你的用户名\.ssh\config,注意这个文件没有扩展名。不存在就新建一个名为 config 的文件,内容与 macOS / Linux 完全一样:

Host my-vps
HostName 123.123.123.123
User root
IdentityFile ~/.ssh/id_ed25519

保存后在 PowerShell 里直接输入 ssh my-vps 即可连接。

多服务器管理示例

假设你要管理三台 VPS,在 ~/.ssh/config 里按下面的格式配置,每个 Host 块对应一台服务器:

Host hostinger-vps
HostName 1.2.3.4
User root
IdentityFile ~/.ssh/id_ed25519

Host aliyun-vps
HostName 5.6.7.8
User root
IdentityFile ~/.ssh/id_ed25519

Host tencent-vps
HostName 9.10.11.12
User root
IdentityFile ~/.ssh/id_ed25519

之后连接 Hostinger 输 ssh hostinger-vps,连接阿里云输 ssh aliyun-vps,连接腾讯云输 ssh tencent-vps,不用再记 IP 和用户名。

常见问题

1. SSH Key 的密码是服务器密码吗?

不是。SSH Key 的 Passphrase 保护的是你电脑里的私钥文件,服务器密码则是登录 VPS 用户用的密码,两者完全不同。Passphrase 忘记后无法找回,只能重新生成一对密钥并重新配置服务器。

2. 可以把私钥上传到 VPS 吗?

绝对不要。上传的应该是 id_ed25519.pub 公钥;id_ed25519 私钥只留在本地电脑。私钥泄露等于把服务器钥匙交给别人。

3. 删除本地 SSH Key 会影响服务器吗?

不会影响服务器本身,只会让你这台电脑无法再登录。只有删除服务器上的 authorized_keys 里的对应公钥,服务器才会拒绝这把密钥登录。

推荐实践方案

个人使用的 VPS 推荐完整组合:Ed25519 算法加 Passphrase,再配合 SSH Agent 保存和 SSH Alias 管理,安全性和使用体验都最好。Passphrase 保护私钥文件,Agent 让你免去重复输入,Alias 让多服务器连接变得简单。

自动化部署场景则不同。GitHub Actions、CI/CD、AI Agent、Codex、Claude Code 这类程序需要在无人值守时自动连接服务器,无法每次交互式输入 Passphrase,通常采用 Ed25519 加无 Passphrase 的密钥,并通过限制密钥用途、只授权必要用户和命令来降低风险。自动化密钥建议单独生成,不要和日常登录共用同一把。

Key Takeaway 核心结论

个人使用:Ed25519 + Passphrase + SSH Agent + SSH Alias。自动化部署:Ed25519 + 无 Passphrase + 最小权限,两类场景的密钥分开管理。

总结

创建 SSH 登录密钥并配置 VPS,完整流程是下面五步:电脑上生成密钥对,复制公钥内容,把公钥上传到 VPS 的 authorized_keys,配置 SSH Agent 避免重复输入密码,最后设置 SSH Alias,用 ssh my-vps 一条命令登录。

SSH Key 配置完整流程

01

生成密钥

ssh-keygen -t ed25519

02

复制公钥

cat ~/.ssh/id_ed25519.pub

03

上传到 VPS

authorized_keys 保存公钥

04

配置 SSH Agent

ssh-add 记住私钥,免输密码

05

设置 SSH Alias

~/.ssh/config 配别名,ssh my-vps

macOS、Linux、Windows 的操作界面不同,但底层用的都是同一个 OpenSSH 标准。掌握这一套流程后,几乎所有云服务器都能用 SSH Key 安全登录,并通过 SSH 别名快速管理多台 VPS。

更多类似指南,
每周四送达。

主机评测、建站对比、性能优化技巧和插件推荐 — 每周为 WordPress 站长和建站者精选。