V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MasterCai
V2EX  ›  Windows

Windows11 更改默认 SSH 客户端为“Bash”出现“系统无法访问此文件。”错误

  •  
  •   MasterCai · 2022-10-11 08:20:33 +08:00 · 3131 次点击
    这是一个创建于 556 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一台 windows11 的机器,安装了 WSL2 ,我想在其他机器通过 SSH 进行访问。目前的情况是可以通过 SSH 登录上,但是打开的终端是“CMD”。

    根据一些教程,我通过修改注册表的方式将 SSH 的默认终端修改为了“Bash”,但是这样就会出现“系统无法访问此文件。”的报错。我还尝试了将注册表的终端值修改为“WSL”,即“C:\WINDOWS\System32\wsl.exe”,也会出现同样错误。但是很奇怪,我将默认终端设置为“Powershell”就没有任何问题,即"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"。

    然后我又尝试了另一种方案,即先通过 SSH 登陆到 windows 的“CMD”终端,然后再在这里输入“Bash”命令或"wsl",均出现同样的错误,但是如果我在 windows11 本地打开“CMD”终端,“Bash”和“wsl”命令均可以正常使用。

    用于连接的客户端是 macos 下的 iterm2 ,不过这个应该没有影响吧

    我推测是不是远程连接的时候不允许访问“C:\WINDOWS\System32\”下的文件?但是“Powershell”同样在 System32 目录下,却可以正常访问,不太理解这个机制,有没有什么解决方案能够正常通过 SSH 打开“bash”或者“wsl”呢?

    9 条回复    2023-03-27 16:51:59 +08:00
    baobao1270
        1
    baobao1270  
       2022-10-11 08:36:16 +08:00
    试试不在 windows 里启用 ssh server ,而是在 wsl 里安装 openssh server ?
    xygod
        2
    xygod  
       2022-10-11 09:04:02 +08:00
    感觉需要做端口转发,类似远程 ssh 到 docker 内?
    MasterCai
        3
    MasterCai  
    OP
       2022-10-11 09:04:37 +08:00 via iPhone
    @baobao1270 wsl ip 不固定呀,就是想先试试通过 windows 连接的方案
    MasterCai
        4
    MasterCai  
    OP
       2022-10-11 09:06:33 +08:00 via iPhone
    @xygod 这好像也是个思路,但是 wsl 的 ip 不固定好像也不太好转发
    xygod
        5
    xygod  
       2022-10-11 09:10:14 +08:00   ❤️ 1
    ddrobot
        6
    ddrobot  
       2022-10-11 10:14:35 +08:00   ❤️ 1
    @MasterCai 我之前用的 wsl2host ,后来要跨局域网通信,直接在 wsl 里跑 zerotier 或者 tailscle 之类的 p2p 打洞来组网了,再回来直接上 hyper-v 了,本质就是个虚拟机
    canbingzt
        7
    canbingzt  
       2022-10-11 14:00:36 +08:00   ❤️ 1
    $wslip = wsl -- ip -o -4 -json addr list eth0 `
    | ConvertFrom-Json `
    | %{ $_.addr_info.local } `
    | ?{ $_ }
    netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=$wslip
    canbingzt
        8
    canbingzt  
       2022-10-11 14:01:19 +08:00
    @MasterCai 看#7 代码,设置成开机启动就可以了
    Evsio0n
        9
    Evsio0n  
       2023-03-27 16:51:59 +08:00
    This is a common issue for wsl2.

    Known Issues:
    Launching Windows Subsystem for Linux from session zero does not currently work (for example from an ssh connection).

    https://learn.microsoft.com/en-us/windows/wsl/store-release-notes#known-issues

    解決方法: 使用 wsl 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2755 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 726ms · UTC 00:25 · PVG 08:25 · LAX 17:25 · JFK 20:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.