ℹ️ 为什么用 SSH 密钥?
SSH 密钥比密码更安全,也不需要每次输入密码。配置一次后,VibeSSL 即可用你的私钥自动登录服务器完成部署。
Windows 10/11、macOS 和绝大多数 Linux 都已自带或可启用 OpenSSH。先确认可用;若未安装,按下方分层方法启用即可。
什么是 SSH 密钥
SSH 密钥是一对文件:
- 公钥(
.pub)放在服务器上 - 私钥保存在你本地,填入 VibeSSL
VibeSSL 用私钥证明身份,服务器用公钥验证,从而实现免密登录。
打开 PowerShell
- Windows:按 Win + R,输入
powershell回车;或在开始菜单搜索「PowerShell」打开。 - macOS:打开「终端」(Terminal),无需任何安装。
- Linux:打开终端,绝大多数发行版已预装 OpenSSH。
后续文中的 PowerShell 命令,macOS / Linux 用户直接在终端执行即可(查看密钥内容时可用 cat 代替 Get-Content)。

安装或启用 OpenSSH
3.1 先检查
在 PowerShell / 终端中输入:
ssh -V若显示版本号(如 OpenSSH_for_Windows_8.6),说明已就绪,可直接跳到步骤 4。

3.2 未安装时的三种方法(按顺序尝试)
⚠️ 需要安装时再往下看
如果 ssh -V 提示「不是内部或外部命令」,说明你的电脑未启用 OpenSSH。请按下方的方法一、二、三依次尝试。
⚠️ 公司或学校电脑注意
如果公司或学校电脑有网络限制,方法一可能失败,请直接使用方法二。
以下方法主要面向 Windows。macOS / Linux 用户若 ssh -V 已有版本号,可跳过本节。
方法一:Add-WindowsCapability 命令(Windows 10 1809+ / 11)
- 以管理员身份打开 PowerShell(右键开始菜单 → 「Windows PowerShell(管理员)」或「终端(管理员)」)。
- 执行:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0看到 State : Installed 即成功。然后关闭并重新打开 PowerShell,再执行 ssh -V 验证。
如果报错 0x800F0954 或提示无法下载,说明网络或组策略受限,请使用方法二。

方法二:手动下载 Win32-OpenSSH(适用于所有 Windows 版本,包括旧版)
只需解压并配置 PATH,即可使用 SSH客户端。不要运行 install-sshd.ps1(那是安装本机 SSH 服务端,本教程不需要)。
- 访问 https://github.com/PowerShell/Win32-OpenSSH/releases
- 下载
OpenSSH-Win64.zip。 - 解压到
C:\Program Files\OpenSSH。 - 以管理员身份打开 PowerShell,执行:
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "Machine") + ";C:\Program Files\OpenSSH", "Machine")- 关闭并重新打开 PowerShell。
- 执行
ssh -V验证。


方法三:Git Bash(最终备选)
- 如果以上都失败,下载安装 Git for Windows。
- 打开 Git Bash,后续命令与 PowerShell 完全相同(查看文件内容用
cat)。
生成密钥
在 PowerShell(或终端 / Git Bash)中执行(把邮箱换成你的):
ssh-keygen -t ed25519 -C "your_email@example.com"按 3 次回车(使用默认路径,不设密码)。

查看密钥文件
密钥默认保存在:
C:\Users\你的用户名\.ssh\macOS / Linux / Git Bash 一般为 ~/.ssh/
生成两个文件:
id_ed25519(私钥)id_ed25519.pub(公钥)

复制公钥
在 PowerShell 中执行:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pubmacOS / Linux / Git Bash: cat ~/.ssh/id_ed25519.pub
复制输出的全部内容。

上传公钥到服务器
SSH 登录服务器(用密码登录):
ssh root@你的服务器IP在服务器上执行:
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys粘贴公钥内容,按 Ctrl+O 保存,Ctrl+X 退出,然后执行:
chmod 600 ~/.ssh/authorized_keys
测试免密登录
在 PowerShell / 终端中执行:
ssh root@你的服务器IP如果不需要输入密码就能登录,说明配置成功。

把私钥填入 VibeSSL
在 PowerShell 中执行:
Get-Content $env:USERPROFILE\.ssh\id_ed25519macOS / 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 更好用,推荐使用。