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

Windows系统SSH服务器公钥认证登录失败问题求助(WSL场景)

WSL SSH免密登录失败的解决步骤

1. 确认公钥已正确部署到WSL端

  • 客户端生成密钥对(若未生成):ssh-keygen -t rsa,全程按回车使用默认配置即可。
  • 将客户端~/.ssh/id_rsa.pub的内容完整复制到WSL用户目录下的~/.ssh/authorized_keys文件中。如果~/.ssh目录不存在,先在WSL终端执行mkdir ~/.ssh创建。
  • 避免直接从Windows文件管理器复制文件到WSL的~/.ssh目录,这会导致权限继承Windows规则,引发后续认证问题。

2. 修复WSL内.ssh目录及文件的权限

sshd对密钥文件的权限要求严格,必须在WSL终端执行以下命令修正:

  • chmod 700 ~/.ssh:设置目录仅所有者可读写执行
  • chmod 600 ~/.ssh/authorized_keys:设置密钥文件仅所有者可读写

3. 检查并修正sshd配置

编辑WSL内的/etc/ssh/sshd_config文件(需sudo权限),确保以下配置项正确:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes  # 先保留密码认证,免密成功后再改为no
ChallengeResponseAuthentication no  # 禁用交互式认证

修改后重启sshd服务:sudo service ssh restart

4. 正确测试免密登录

  • 不要使用公钥文件作为身份参数,客户端应使用私钥。正确命令为:
    ssh -i ~/.ssh/id_rsa <username>@<desktop-ip>
  • 若私钥是默认路径(~/.ssh/id_rsa),可简化为:ssh <username>@<desktop-ip>

5. 排查剩余问题

如果仍报错,查看WSL内的认证日志获取详细信息:
sudo tail /var/log/auth.log
日志中会明确提示失败原因,比如权限不足、公钥格式错误等,针对性修复即可。

内容的提问来源于stack exchange,提问作者Frank Qiu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:53:22