在 Windows 10 上将 wsl 作为默认 OpenSSH shell 的 sftp

在 Windows 10 上将 wsl 作为默认 OpenSSH shell 的 sftp

在 Windows 10 上,我可以使用以下 PowerShell 命令将默认的 OpenSSH shell 设置为 wsl。

New-ItemProperty `
-Path "HKLM:\SOFTWARE\OpenSSH" `
-Name DefaultShell `
-Value "C:\WINDOWS\System32\bash.exe" `
-PropertyType String `
-Force

但是,sftpscp停止工作,我立即得到Connection closed。而sftp当PowerShell是默认的OpenSSH shell时,工作正常。

是否可以将 wsl 作为默认的 OpenSSH shell 并sftp继续scp工作?

答案1

IDK,您的特定问题看起来不再是一个问题。

我遇到了同样的错误,但那是因为我设置HKLM:\SOFTWARE\OpenSSH\DefaultShellC:\Windows\System32\wsl.exe

执行文件不接受-c非交互式命令的选项(例如FTP 服务器
它想要的是一个-e

我通过切换到HKLM:\SOFTWARE\OpenSSH\DefaultShell来解决这个C:\Windows\System32\bash.exe问题,这是您两年前使用的值,所以我想,无论当时的问题是什么,它可能已经解决了。

也许已经通过当前的默认值解决了sshd_config

Subsystem   sftp    sftp-server.exe.

.exe有很大不同,因为 WSL 的 bash 解析以.exe使用 Windows PATH 变量而不是 Linux 变量结尾的命令,也许你当时在 bash 路径中没有 sftp-server 可执行文件?

相关内容