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