在 Windows 10 的 SSHD 上使用 powershell 作为默认解释器?

在 Windows 10 的 SSHD 上使用 powershell 作为默认解释器?

当使用默认的 Windows 10 sshd(SSH 服务/守护程序)时,如何将其设置为使用powershell而不是登录cmd

答案1

介绍

Windows 平台的 OpenSSH 服务器和客户端实现在 2017 年一直处于积极开发阶段,因此配置、目录名称等一直在变化。请检查Windows 版 OpenSSH 的官方存储库了解最新信息。

回答

编辑sshd_config位于以下位置的文件%ProgramData%\ssh

PasswordAuthentication yes
Subsystem powershell c:/pwsh/pwsh.exe -sshs -NoLogo -NoProfile

因为漏洞名称中带有空格的目录在 sshd 配置中无法正确处理,这就是为什么您应该创建到 Powershell 目录的符号链接:mklink /D c:\pwsh "C:\Program Files\PowerShell\6"

重新启动 sshd 服务:

Restart-Service sshd

你已经完成了。

完整信息可查阅这里

答案2

在撰写本文时,在 Windows 10 Pro 上,默认 shell 是从 Windows 注册表中读取的。

您可以按照以下方式进行修改:

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

来源:

https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_server_configuration

相关内容