通过 SSH 进入 Linux 子系统,而不是 Windows CMD

问题描述 投票:0回答:3

我想我搞砸了一些事情,因为这里没有人有类似的问题。当我通过 SSH 连接到 Windows 笔记本电脑时,默认情况下它不会提供 UNIX shell,而是直接让我进入 Windows 提示符。然后我必须输入 bash,然后输入 cd,然后我就可以运行我需要的命令。

这是 Windows 设置问题还是 openssh 问题?有人对如何避免每次登录时都需要输入这些命令有任何建议吗?

windows-subsystem-for-linux openssh
3个回答
2
投票

Windows SSH 守护进程是 openssh,默认情况下它设置为使用 cmd 作为 shell,但您可以编辑配置以使用 powershell、bash 或任何其他第三方 shell。请按照此链接中的信息进行操作。


1
投票

MS PoweShell 文档中给出的内容应该经过。

要设置默认命令 shell,首先确认 OpenSSH 安装文件夹位于系统路径上。对于 Windows,默认安装文件夹为 SystemDrive:WindowsDirectory\System32\openssh。

配置默认 ssh shell 是在 Windows 注册表中通过将 shell 可执行文件的完整路径添加到字符串值 DefaultShell 中的 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH 来完成的。

这是示例,以下 Powershell 命令将默认 shell 设置为 PowerShell.exe:

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

欲了解更多说明,请参阅this链接。


0
投票

简而言之,将以下命令之一粘贴到elevated Powershell 提示符中(右键单击,以管理员身份运行):

  • Bash
    设置为默认 shell(安装 Git Bash 后有效)
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\Git\bin\bash.exe" -PropertyType String -Force

这样,您就不再专门处于 WSL 中,但您拥有 Bash shell。

基于 Drunken Code Monkey 的回答 以及来自 this 答案 到 SuperUser 上的类似问题。

© www.soinside.com 2019 - 2024. All rights reserved.