← 返回教程列表

如何生成 SSH 密钥

VibeSSL 通过 SSH 密钥自动登录你的服务器,部署 SSL 证书。整个过程只需 3 分钟。

预计耗时:约 3 分钟

ℹ️ 为什么用 SSH 密钥?

SSH 密钥比密码更安全,也不需要每次输入密码。配置一次后,VibeSSL 即可用你的私钥自动登录服务器完成部署。

Windows 10/11、macOS 和绝大多数 Linux 都已自带或可启用 OpenSSH。先确认可用;若未安装,按下方分层方法启用即可。

1

什么是 SSH 密钥

SSH 密钥是一对文件:

  • 公钥(.pub)放在服务器上
  • 私钥保存在你本地,填入 VibeSSL

VibeSSL 用私钥证明身份,服务器用公钥验证,从而实现免密登录。

2

打开 PowerShell

  • Windows:按 Win + R,输入 powershell回车;或在开始菜单搜索「PowerShell」打开。
  • macOS:打开「终端」(Terminal),无需任何安装。
  • Linux:打开终端,绝大多数发行版已预装 OpenSSH。

后续文中的 PowerShell 命令,macOS / Linux 用户直接在终端执行即可(查看密钥内容时可用 cat 代替 Get-Content)。

打开 PowerShell
Windows:Win + R 输入 powershell,或从开始菜单打开
3

安装或启用 OpenSSH

3.1 先检查

在 PowerShell / 终端中输入:

ssh -V

若显示版本号(如 OpenSSH_for_Windows_8.6),说明已就绪,可直接跳到步骤 4。

执行 ssh -V 检查 OpenSSH
ssh -V 显示版本号即可跳到步骤 4

3.2 未安装时的三种方法(按顺序尝试)

⚠️ 需要安装时再往下看

如果 ssh -V 提示「不是内部或外部命令」,说明你的电脑未启用 OpenSSH。请按下方的方法一、二、三依次尝试。

⚠️ 公司或学校电脑注意

如果公司或学校电脑有网络限制,方法一可能失败,请直接使用方法二。

以下方法主要面向 Windows。macOS / Linux 用户若 ssh -V 已有版本号,可跳过本节。

方法一:Add-WindowsCapability 命令(Windows 10 1809+ / 11)

  1. 以管理员身份打开 PowerShell(右键开始菜单 → 「Windows PowerShell(管理员)」或「终端(管理员)」)。
  2. 执行:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

看到 State : Installed 即成功。然后关闭并重新打开 PowerShell,再执行 ssh -V 验证。

如果报错 0x800F0954 或提示无法下载,说明网络或组策略受限,请使用方法二。

Add-WindowsCapability 安装 OpenSSH
State : Installed
方法一:管理员 PowerShell 中执行安装命令

方法二:手动下载 Win32-OpenSSH(适用于所有 Windows 版本,包括旧版)

只需解压并配置 PATH,即可使用 SSH客户端。不要运行 install-sshd.ps1(那是安装本机 SSH 服务端,本教程不需要)。

  1. 访问 https://github.com/PowerShell/Win32-OpenSSH/releases
  2. 下载 OpenSSH-Win64.zip。
  3. 解压到 C:\Program Files\OpenSSH。
  4. 以管理员身份打开 PowerShell,执行:
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "Machine") + ";C:\Program Files\OpenSSH", "Machine")
  1. 关闭并重新打开 PowerShell。
  2. 执行 ssh -V 验证。
下载 Win32-OpenSSH
方法二:从 GitHub Releases 下载 OpenSSH-Win64.zip
添加 OpenSSH 到 PATH
PATH
用管理员 PowerShell 将 C:\\Program Files\\OpenSSH 写入系统 PATH

方法三:Git Bash(最终备选)

  1. 如果以上都失败,下载安装 Git for Windows。
  2. 打开 Git Bash,后续命令与 PowerShell 完全相同(查看文件内容用 cat)。
4

生成密钥

在 PowerShell(或终端 / Git Bash)中执行(把邮箱换成你的):

ssh-keygen -t ed25519 -C "your_email@example.com"

按 3 次回车(使用默认路径,不设密码)。

ssh-keygen 生成命令
回车三次
执行 ssh-keygen 并连续回车
5

查看密钥文件

密钥默认保存在:

C:\Users\你的用户名\.ssh\

macOS / Linux / Git Bash 一般为 ~/.ssh/

生成两个文件:

  • id_ed25519(私钥)
  • id_ed25519.pub(公钥)
SSH 密钥文件列表
.ssh 目录下的私钥与公钥文件
6

复制公钥

在 PowerShell 中执行:

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

macOS / Linux / Git Bash: cat ~/.ssh/id_ed25519.pub

复制输出的全部内容。

复制公钥内容
复制输出的整行公钥
7

上传公钥到服务器

SSH 登录服务器(用密码登录):

ssh root@你的服务器IP

在服务器上执行:

mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys

粘贴公钥内容,按 Ctrl+O 保存,Ctrl+X 退出,然后执行:

chmod 600 ~/.ssh/authorized_keys
在服务器写入 authorized_keys
将公钥写入 authorized_keys 并设置权限
8

测试免密登录

在 PowerShell / 终端中执行:

ssh root@你的服务器IP

如果不需要输入密码就能登录,说明配置成功。

测试 SSH 免密登录
免密
免密登录成功即配置完成
9

把私钥填入 VibeSSL

在 PowerShell 中执行:

Get-Content $env:USERPROFILE\.ssh\id_ed25519

macOS / Linux / Git Bash: cat ~/.ssh/id_ed25519

复制输出的全部内容,粘贴到 VibeSSL 部署表单的「SSH 私钥」输入框(包含 BEGIN 到 END 整段)。

🚫 私钥安全

  • 私钥绝对不能泄露给任何人
  • 不要提交到 Git 仓库或公开代码库
  • 不要分享给他人
  • 如果怀疑泄露,立即在服务器上从 authorized_keys 删除对应公钥,并重新生成密钥对

常见问题

我按照教程操作,但提示「ssh 不是内部或外部命令」?

说明你的 Windows 系统未启用 OpenSSH。请返回「步骤 3」,按方法一、方法二或方法三依次尝试。

我的 Windows 功能窗口中没有 OpenSSH 客户端选项?

说明系统版本较老或为精简版,请使用方法二(手动下载)。

方法一执行 Add-WindowsCapability 报错 0x800F0954?

通常是网络或组策略限制,请直接使用方法二。

macOS 需要安装 OpenSSH 吗?

不需要。macOS 自带 OpenSSH 客户端,打开终端即可使用。

提示「Permission denied」?

检查 authorized_keys 权限是否为 600,或重新上传公钥。

我有多个服务器怎么办?

同一个密钥对可以用于所有服务器,把公钥上传到每台服务器即可。

为什么优先用 PowerShell?

PowerShell 是 Windows 自带,多数情况下无需安装额外软件即可使用 OpenSSH。仅在系统功能不可用时,再使用方法二或 Git Bash。

我可以用 CMD 吗?

可以,命令相同。但 PowerShell 更好用,推荐使用。

遇到问题?联系我们