在 WSL 中执行 .exe 在 Windows 本身中是可行的,但如果通过 SSH 进入则不行

在 WSL 中执行 .exe 在 Windows 本身中是可行的,但如果通过 SSH 进入则不行

在 WSL/Ubuntu 中,我可以通过以下方式打开/运行可执行文件:

user@desktop: notepad.exe

这将打开记事本。但是,如果我从其他客户端(例如 iPad)通过 ssh 进入 WSL,则输入该命令会返回错误消息:

command not found

知道这是为什么吗?这是可以实现的吗?谢谢!

答案1

这是不可能的,因为记事本使用 Windows 显示服务器,但 ssh 客户端需要 X 服务器。

您可以安装类似 gedit 之类的支持 X Server 转发的程序来代替记事本。

然后你可以使用 ssh 进入服务器

ssh -Y user@host

答案2

在尝试运行程序之前尝试使用此命令

su <username> -

当我尝试使用 ssh 远程运行 powershell 或 cmd 时,我遇到了类似的问题。直接从其文件夹运行 powershell 只会导致会话挂起,无法取消。问题出在您的环境上。

答案3

我注意到,当我在 wsl 系统(主机)上设置 sshd 并使用客户端命令中的 ssh 命令从 Windows 10 系统(客户端)通过 ssh 进入它,然后尝试使用 访问主机命令时/mnt/c/Windows/System32/cmd.exe,我的客户端冻结了。

但是,当我在客户端上启动 wsl 会话并从那里连接主机时,不会发生冻结,并且我可以访问主机命令。

因此看来,linux(ubuntu)版本的 openssh 可以工作,但 windows 版本则不行。

有趣的事实:如果按照上面描述的方式在主机上获取 cmd 访问权限并键入notepad.exe,则记事本会在主机上使用 GUI 打开。

答案4

当你知道确切路径时,你可以用“命令”执行:

command /mnt/c/windows/system32/ipconfig.exe

相关内容