本地.NET应用与命令行无法连接Windows 2022 OpenSSH服务器求排查
解决Windows 2022 OpenSSH Server权限拒绝问题
针对你遇到的RDP可正常登录但SSH/SFTP连接报Permission denied, please try again的问题,以下是几个容易遗漏的OpenSSH Server配置及检查步骤:
1. 确认密码登录已启用
打开服务器上的隐藏文件夹C:\ProgramData\ssh,找到sshd_config文件(需管理员权限编辑):
- 找到
PasswordAuthentication配置项,确保其值为yes(若被注释则取消注释) - 保存文件后,在服务管理器中重启
OpenSSH SSH Server服务
2. 检查管理员账户的SSH登录权限
在sshd_config中检查以下配置:
- 若存在
AllowUsers项,需将你的管理员账户添加进去(格式:AllowUsers 你的用户名,多个账户用空格分隔) - 若存在
DenyUsers或DenyGroups项,确保未包含你的管理员账户或Administrators组 - 可添加
AllowGroups Administrators配置,允许管理员组所有成员登录
3. 排查账户锁定或密码策略
- 打开服务器的本地安全策略(运行
secpol.msc),进入账户策略 > 账户锁定策略,检查是否因多次连接失败导致账户被锁定,若锁定则解锁账户并调整锁定阈值 - 确认密码策略未限制SSH登录(RDP可正常登录的话此问题概率较低,但可排除)
4. 调整UAC远程访问设置
Windows默认对远程管理员账户有UAC限制,可能导致SSH验证失败:
- 打开注册表编辑器(运行
regedit),定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System - 创建或修改
DWORD类型的LocalAccountTokenFilterPolicy,设置值为1 - 重启服务器或重启OpenSSH服务生效
5. 验证防火墙规则
虽然你收到的是权限错误而非连接超时,仍需确认:
- Windows防火墙已启用
OpenSSH SSH Server (TCP-In)规则,或手动添加允许TCP 22端口入站的规则
另外,你的.NET代码和命令行连接逻辑本身无明显问题,报错根源应在服务器端配置,按上述步骤逐一排查即可。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

