Skip to content

Windows 环境 SSH 免密登录实战指南 ​

定位:本文档专门针对 Windows 10 / Windows 11 环境,讲解如何使用系统自带的 OpenSSH 客户端高效、安全地连接 Linux 服务器。无需安装第三方终端(如 Xshell / Putty)即可实现极客级别的管理体验。


1. 基础连接:账号密码登录 ​

Windows 10/11 已默认内置 OpenSSH 客户端。你可以直接使用自带的 PowerShell 或 Windows Terminal 进行连接。

1.1 连接命令 ​

打开 PowerShell,输入:

powershell
# 格式: ssh 用户名@服务器IP或域名
ssh your_username@YOUR_SERVER_IP

1.2 首次连接确认 ​

首次连接一台新服务器时,会出现指纹确认提示:

The authenticity of host 'YOUR_SERVER_IP' can't be established. ECDSA key fingerprint is SHA256:xxxxxx. Are you sure you want to continue connecting (yes/no/[fingerprint])?

  • 输入 yes 并回车确认。
  • 随后输入密码(注意:Windows 终端下输入密码时屏幕不会显示任何星号或字符,这是正常的安全机制)。
  • 登录成功后,即可进入 Linux 命令行界面。

2. 核心操作:SSH Key 免密登录 (极力推荐) ​

每次输入密码既不安全也繁琐。通过公钥/私钥配对实现自动认证,是现代化运维的标配。

2.1 生成密钥对 (Windows 端) ​

在 PowerShell 中执行以下命令生成密钥(这里使用安全性更高、性能更好的 ed25519 算法):

powershell
ssh-keygen -t ed25519 -C "windows-client"
  • 保存路径: 提示保存路径时,直接回车(默认保存在 C:\Users\你的用户名\.ssh\id_ed25519)。
  • 设置密码 (Passphrase): 提示设置密钥密码时,直接回车留空(如果不留空,每次连接仍需输入该密码,无法实现完全免密)。

2.2 一键上传公钥到服务器 ​

我们需要将刚才生成的公钥 (id_ed25519.pub) 的内容,写入到服务器的 ~/.ssh/authorized_keys 文件中。

Windows 环境下的一键上传神技(在 PowerShell 中执行):

powershell
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh your_username@YOUR_SERVER_IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

(执行这条命令时,你需要最后一次输入服务器的密码)

2.3 验证免密连接 ​

关闭当前的 PowerShell 窗口,重新打开一个新的终端,输入:

powershell
ssh your_username@YOUR_SERVER_IP

预期结果: 终端将直接进入 Linux 服务器,不再弹出密码输入提示!免密配置大功告成。


3. 进阶配置:SSH Config 别名访问 ​

当你有多台服务器(如测试机、生产机、旁路由等)需要管理时,每次输入 ssh user@ip 非常容易记混。通过配置 Windows 上的 SSH Config 文件,可以实现别名访问。

3.1 编辑配置文件 ​

在 Windows 下,建议使用 VS Code 打开或创建 SSH 配置文件(在 PowerShell 中执行):

powershell
code $env:USERPROFILE\.ssh\config

(如果提示文件不存在,请手动在 C:\Users\你的用户名\.ssh\ 目录下新建一个名为 config 的无后缀文件)

3.2 添加别名配置内容 ​

text
# 生产环境服务器
Host prod-server
    HostName 203.0.113.10
    User root
    # 如果使用了非默认路径的密钥,可以取消下面注释并指定路径
    # IdentityFile ~/.ssh/id_ed25519

# 测试环境服务器
Host test-server
    HostName 192.168.1.100
    User dev_user
    Port 2222  # 如果服务器修改了默认的 22 端口,在这里指定

3.3 体验别名登录 ​

配置保存后,在任何 PowerShell 窗口中,只需输入以下极简命令即可秒连服务器:

powershell
ssh prod-server

3.4 联动 VS Code Remote - SSH ​

这套 config 配置不仅适用于终端,VS Code 的 Remote - SSH 插件也会直接读取这个文件。配置好别名后,你可以在 VS Code 的远程面板中看到 prod-server 和 test-server,实现一键点击连接并在本地愉快地编辑服务器代码。

方舟 · Ark