由于 WSL 交叉引用导致权限问题,通过 Visual Studio Code 进行远程 SSH 无法工作

由于 WSL 交叉引用导致权限问题,通过 Visual Studio Code 进行远程 SSH 无法工作

我已经设置了一个 Linux 服务器,并将服务器设置为仅接受带有 rsa 公钥文件的 ssh。通过 WSL 客户端进行 SSH 连接有效,但在 VSC 上使用 Remote-SSH 无效。我收到错误消息:

无法与“IP”建立连接:该过程尝试写入不存在的管道。

当我查看 VSC 上的输出时,我得到了:

[13:05:57.029] Terminal shell path: C:\WINDOWS\System32\cmd.exe
[13:05:57.222] > @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> ]0;C:\WINDOWS\System32\cmd.exe
[13:05:57.222] Got some output, clearing connection timeout
[13:05:57.238] > @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> Permissions for '\\\\wsl$\\Ubuntu\\home\\ryanp\\.ssh\\id_rsa' are too open.
> It is required that your private key files are NOT accessible by others.   
> This private key will be ignored.
> Load key "\\\\wsl$\\Ubuntu\\home\\ryanp\\.ssh\\id_rsa": bad permissions    
> [email protected]: Permission denied (publickey).
> The process tried to write to a nonexistent pipe.

我尝试通过 explorer.exe 编辑 id_rsa 文件的权限。在 rsa pub 文件的目录中,但我无法在其属性中找到安全选项卡。即使通过 gpedit.msc 和 regedit 强制显示安全选项卡。我该如何解决这个问题?

答案1

OpenSSH 对密钥文件的权限非常挑剔,如果权限不正确,OpenSSH 就会拒绝工作。因此,您会发现尝试使用带有 Linux 密钥文件的 Windows SSH 或带有密钥文件的 Linux SSH 会很困难,甚至不可能,因为每个操作系统的 OpenSSH 都无法正确读取其他操作系统的权限。

id_rsa如果您想使用 Windows OpenSSH,您可能需要将文件从 WSL 环境复制到 Windows 主目录中。

相关内容