You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下SSH密钥身份验证配置失效求助

Windows下SSH密钥身份验证配置失效求助

看起来你已经把基础配置都捋了一遍,但还是卡在密钥验证上,我帮你梳理几个法语版Windows上容易踩的坑,还有一些容易被忽略的细节:

  • 先揪出组名的小错误:你提到把administrators_authorized_keys的权限组改成了Administrateur:F,但法语版Windows的管理员组其实是复数形式的Administrateurs,不是单数!你可以在Windows命令行里敲net localgroup确认一下组名,然后用这条命令修正文件的ACL权限(这一步非常关键,Windows OpenSSH对这个文件的权限要求极严):

    icacls "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrateurs:F" /grant "SYSTEM:F"
    

    改完一定要重启SSH服务:net stop sshd && net start sshd

  • 确认密钥文件的路径和归属:Windows OpenSSH的规则和Linux不一样:

    • 如果你用管理员账号登录,公钥必须放在C:\ProgramData\ssh\administrators_authorized_keys里,不能放到用户个人目录的.ssh/authorized_keys
    • 普通用户才用个人目录下的.ssh/authorized_keys,而且这个文件的权限也要设置成只有当前用户和SYSTEM能访问
  • 核对sshd_config的隐藏配置项:除了你已经设置的PubkeyAuthentication yes和PasswordAuthentication no,还要检查这两个:

    • AuthorizedKeysFile:默认针对管理员的路径是PROGRAMDATA/ssh/administrators_authorized_keys,如果这个配置被修改过,密钥验证直接失效
    • StrictModes yes:这个选项会严格检查密钥文件的权限,前面的ACL设置不达标就会被拒绝
  • 检查公钥的格式和完整性:你用scp传过去的公钥,要确保是一行完整的内容,格式是ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... 你的iPhone设备备注,文件里不要有多余的换行、空格或者注释内容

  • 客户端私钥的权限也不能忘:在你的iPhone端,私钥文件(一般是~/.ssh/id_rsa)的权限必须设为600,不然OpenSSH会因为私钥权限太宽松而拒绝使用。在NewTerm里敲这条命令:

    chmod 600 ~/.ssh/id_rsa
    
  • 结合服务器日志精准定位:你提到有服务器端日志,如果上面的步骤都试过还是不行,看看日志里有没有类似这些关键词:

    • invalid ownership or permissions:说明密钥文件权限还是有问题
    • no mutual signature algorithm:可能是iPhone生成的密钥算法和Windows SSH服务器不兼容(比如用了ed25519但服务器没开启)
    • publickey for user ... invalid:说明公钥没放对文件,或者格式错误

备注:内容来源于stack exchange,提问作者Grez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 09:13:02