先检查是否已经安装
打开 PowerShell 或 CMD,执行:
ssh -V如果输出版本号,说明 SSH 客户端已经安装。
检查 SSH 服务端:
Get-Service sshd如果提示找不到服务,说明 SSH Server 还没有安装。
方式一:使用 Windows 自带 OpenSSH
Windows 10 和 Windows 11 通常自带 OpenSSH 客户端,可选安装 OpenSSH 服务端。
检查客户端能力
在 PowerShell 中执行:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'如果状态是 Installed,说明客户端已经装好。
安装 OpenSSH 客户端
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0安装完成后验证:
ssh -V检查服务端能力
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*'安装 OpenSSH 服务端
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0启动 SSH 服务端
安装服务端后,启动 sshd:
Start-Service sshd设置开机自启:
Set-Service -Name sshd -StartupType Automatic查看状态:
Get-Service sshd检查防火墙规则
Windows 一般会自动添加规则,但最好确认一下:
Get-NetFirewallRule -Name *ssh*如果没有合适的入站规则,可以手动放行 22 端口:
New-NetFirewallRule -Name sshd -DisplayName "OpenSSH Server (sshd)" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22方式二:通过“设置”图形界面安装
适合不想用命令行的人。
路径通常是:
设置 -> 应用 -> 可选功能然后:
- 点击“查看功能”
- 搜索
OpenSSH Client或OpenSSH Server - 选择后安装
安装后再回到 PowerShell 中验证:
ssh -V
Get-Service sshd验证 SSH 是否可用
验证客户端
测试本机是否能调用 SSH:
ssh user@server-ip第一次连接会提示确认主机指纹,输入:
yes然后输入密码即可。
验证服务端
检查 22 端口是否监听:
netstat -ano | findstr :22或者:
Get-NetTCPConnection -LocalPort 22也可以在本机测试:
ssh localhostSSH 配置文件位置
客户端配置
当前用户目录下:
C:\Users\你的用户名\.ssh\config例如:
C:\Users\gl\.ssh\config服务端配置
通常在:
C:\ProgramData\ssh\sshd_config修改后重启服务:
Restart-Service sshd常见客户端配置
编辑:
C:\Users\你的用户名\.ssh\config示例:
Host myserver
HostName 192.168.1.100
User root
Port 22配置后可以直接连接:
ssh myserver生成 SSH 密钥
在 PowerShell 中执行:
ssh-keygen -t ed25519 -C "your_email@example.com"默认会生成到:
C:\Users\你的用户名\.ssh\常见文件:
- 私钥:
id_ed25519 - 公钥:
id_ed25519.pub
查看公钥内容:
type $env:USERPROFILE\.ssh\id_ed25519.pub然后把公钥添加到目标服务器的:
~/.ssh/authorized_keys使用 scp 传输文件
上传文件到 Linux 服务器:
scp .\local-file.txt user@server-ip:/remote/path/从 Linux 服务器下载文件到本地:
scp user@server-ip:/remote/path/file.txt .在 Git 中使用 SSH
先检查 Git 是否安装:
git --version测试 SSH 连通性:
ssh -T git@github.com如果你使用 GitHub、GitLab 或 Gitee,一般都需要先把本机公钥添加到对应平台账户中。
常见问题排查
1. ssh 命令找不到
先检查:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'如果没有安装,就先安装客户端。
2. sshd 服务启动失败
查看服务状态:
Get-Service sshd查看 OpenSSH 日志,可以在“事件查看器”中检查相关错误。
3. 22 端口没有监听
确认:
- OpenSSH Server 已安装
sshd服务已经启动- 配置文件没有写错
检查端口:
netstat -ano | findstr :224. 无法从其他机器连接 Windows
重点检查:
sshd服务是否运行- Windows 防火墙是否放行 22 端口
- 当前网络环境是否允许入站连接
- 路由器或安全组是否限制了连接
5. 修改配置后无法连接
修改 sshd_config 后,建议先备份原文件。
修改完成后执行:
Restart-Service sshd如果服务重启失败,优先检查配置文件内容是否有误。
常用命令汇总
安装客户端:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0安装服务端:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0启动服务端:
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic查看状态:
Get-Service sshd连接远程服务器:
ssh user@server-ip上传文件:
scp .\local-file.txt user@server-ip:/remote/path/生成密钥:
ssh-keygen -t ed25519 -C "your_email@example.com"建议
- 普通开发或运维使用,安装 OpenSSH 客户端通常就够了
- 如果你要远程登录 Windows 机器,再安装 OpenSSH 服务端
- 优先使用密钥登录,不要长期只依赖密码登录
- 改动服务端配置前,先备份
sshd_config
