在 Windows 10 上,我可以使用以下 PowerShell 命令将默认的 OpenSSH shell 设置为 wsl。
New-ItemProperty `
-Path "HKLM:\SOFTWARE\OpenSSH" `
-Name DefaultShell `
-Value "C:\WINDOWS\System32\bash.exe" `
-PropertyType String `
-Force
但是,sftp
和scp
停止工作,我立即得到Connection closed
。而sftp
当PowerShell是默认的OpenSSH shell时,工作正常。
是否可以将 wsl 作为默认的 OpenSSH shell 并sftp
继续scp
工作?
答案1
IDK,您的特定问题看起来不再是一个问题。
我遇到了同样的错误,但那是因为我设置HKLM:\SOFTWARE\OpenSSH\DefaultShell
为 C:\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 可执行文件?