系统学习 Windows 学习路径:从 CMD 到 PowerShell、系统网络,再到 WSL 与 Server

ssh

用 OpenSSH 登录远程主机、执行命令和建立加密隧道。

补充说明

Windows 10 1809 及以后和 Windows 11 提供 OpenSSH 客户端,通常以“可选功能”形式存在,部分镜像默认安装;Windows Server 2019+ 也支持。前提是版本和功能满足:先执行 ssh -V 确认,找不到就在“设置 → 应用 → 可选功能”添加 OpenSSH Client,或在管理员 CMD 执行 dism /online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0。装好后通常无需重启,但要新开 CMD 让 PATH 生效。

它提供 ssh、scp、sftp、ssh-keygen、ssh-add 等客户端工具。用户配置在 %USERPROFILE%\.ssh\config,私钥和 known_hosts 也在该目录;Windows 的 ssh-agent 是系统服务,默认手动启动。首次连接会要求确认主机指纹,确认后写入 known_hosts。

边界:客户端只负责发起连接;要让别人 SSH 登录这台 Windows,需要另装 OpenSSH Server 功能、启动 sshd 并放行防火墙。SSH 不能替代 RDP 的图形会话,文件传输用 scp/sftp。PowerShell 里调用的仍是 ssh.exe,参数与 CMD 相同,但引号解析要注意。

常用示例

# 1. 确认客户端存在和版本;Windows 构建会带 OpenSSH_for_Windows 标识
C:\> ssh -V

# 2. 用当前用户名登录,首次连接会提示确认主机指纹
C:\> ssh user@example.com

# 3. 指定端口和私钥,适合非 22 端口或密钥不在默认路径
C:\> ssh -p 2222 -i C:\Users\me\.ssh\id_ed25519 user@example.com

# 4. 详细输出密钥协商和认证过程,定位 publickey 失败
C:\> ssh -v user@example.com

# 5. 本地端口转发:访问本机 8080 即到远端 localhost:80,-N 不打开 shell
C:\> ssh -N -L 8080:localhost:80 user@example.com

# 6. 经跳板机登录内网主机,跳板机和目标机都要能解析
C:\> ssh -J jump.example.com user@internal.example.com

# 7. 生成 Ed25519 密钥,默认写到 %USERPROFILE%\.ssh
C:\> ssh-keygen -t ed25519 -C "me@example.com"

# 8. 脚本模式:禁用交互密码提示并设置连接超时
C:\> ssh -o BatchMode=yes -o ConnectTimeout=5 user@example.com "hostname"

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. Windows 10/11 自带 OpenSSH 客户端的前提是什么?找不到 ssh 时怎么确认和安装?
  2. 首次连接的主机指纹提示可以直接回车吗?指纹变化说明什么?
  3. Permission denied (publickey) 应该先看哪三处?Windows 私钥权限如何修?
答案
  1. Windows 10 1809+/Windows 11,以可选功能形式提供且部分镜像默认安装;先 ssh -V/where ssh,再用可选功能或 DISM 能力名 OpenSSH.Client~~~~0.0.1.0 安装。
  2. 不可以,应通过带外渠道核对指纹;指纹变化可能是服务器重装,也可能是中间人攻击,确认后再更新 known_hosts。
  3. 看 -v 是否提供密钥、-i/config 的 IdentityFile 路径、服务器 authorized_keys 权限;Windows 私钥用 icacls 收紧到当前用户只读。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令