Windows 10需启用内置OpenSSH客户端:进入“设置→应用→可选功能”安装“OpenSSH客户端”,执行ssh -V验证;连接时用ssh 用户名@IP[-p端口];支持密钥认证与PuTTY替代方案,并提供防火墙、服务状态等排查步骤。

如果您尝试在Windows 10中通过命令行连接远程服务器,但系统提示“ssh”不是内部或外部命令,则可能是SSH客户端未启用。以下是开启并使用Win10内置SSH客户端的具体步骤:
一、确认并安装OpenSSH客户端
Windows 10自1803版本起内置OpenSSH客户端,但默认可能未启用。需手动检查并安装该可选功能。
1、点击“开始”按钮,进入“设置” → “应用” → “可选功能”。
2、在功能列表中查找“OpenSSH客户端”。若已存在且状态为“已安装”,则跳过后续步骤;若未列出,点击“添加功能”。
3、在搜索框中输入“OpenSSH”,勾选“OpenSSH客户端”,点击“安装”。
4、安装完成后,打开PowerShell或CMD,执行ssh -V。若返回类似“OpenSSH_for_Windows_9.5p1”的版本信息,说明客户端已就绪。
二、使用命令行连接远程服务器
启用客户端后,即可通过标准SSH协议连接Linux或类Unix服务器,支持用户名、IP地址及端口参数组合。
1、确保远程服务器已开启SSH服务(如sshd),且22端口(或指定端口)在网络层可达。
2、在PowerShell或CMD中输入连接命令:ssh 用户名@服务器IP地址。例如:ssh ubuntu@192.168.1.100。
3、若服务器使用非标准端口(如2222),需附加-p参数:ssh ubuntu@192.168.1.100 -p 2222。
4、首次连接时,系统将显示服务器公钥指纹,并提示是否继续。输入yes后回车。
5、按提示输入远程用户的密码。密码输入过程不显示字符,输完直接回车。
三、配置密钥认证提升安全性与便捷性
避免每次输入密码,可生成本地密钥对,并将公钥上传至服务器的authorized_keys文件中,实现免密登录。
1、以管理员权限打开PowerShell,执行:mkdir C:\Users\%USERNAME%\.ssh(若目录不存在)。
2、切换至该目录:cd ~/.ssh。
3、生成RSA密钥对:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"。连续按回车使用默认路径和空密码(或设密码增强保护)。
4、生成后,当前目录下将出现两个文件:id_rsa(私钥,严禁泄露)和id_rsa.pub(公钥)。
5、将公钥内容复制到剪贴板:Get-Content id_rsa.pub | Set-Clipboard。
6、登录目标服务器后,执行:mkdir -p ~/.ssh && echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys。
四、使用PuTTY作为替代SSH客户端
当内置客户端因权限、策略或兼容性问题无法使用时,PuTTY提供图形化界面与稳定连接能力,无需系统级安装。
1、访问官网https://www.putty.org/下载PuTTY installer或portable版。
2、运行PuTTY,主界面中在“Host Name (or IP address)”栏填入服务器IP地址。
3、在“Port”栏输入端口号(默认22),下方“Connection type”确认选择“SSH”。
4、可选:在“Saved Sessions”栏输入会话名称(如“prod-server”),点击“Save”保存配置以便复用。
5、点击“Open”启动连接。首次连接仍需确认服务器主机密钥,点击“是”接受。
6、新弹出窗口中输入用户名,回车后输入密码完成登录。
五、排查连接失败的常见原因
连接中断或拒绝通常源于网络、服务或认证层面的问题,需逐项验证基础条件。
1、检查本地防火墙是否阻止出站连接:在“Windows Defender 防火墙”→“高级设置”中确认无规则拦截TCP至目标IP:端口。
2、验证远程服务器SSH服务状态:登录服务器执行sudo systemctl status sshd(Linux)或net start | findstr sshd(Win Server)。
3、确认目标IP与端口正确:在本地执行ping -n 3 服务器IP测试连通性;再用Test-NetConnection 服务器IP -Port 端口号检测端口开放状态。
4、核对用户名拼写与大小写:Windows本地账户名区分大小写,Linux用户亦然;whoami可确认当前本地用户名格式。
5、检查服务器是否限制了登录来源:查看服务器端/etc/ssh/sshd_config中AllowUsers或AllowGroups配置项是否包含当前用户。










