在 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伺服器轉發。

然後你可以使用 ssh 進入伺服器

ssh -Y user@host

答案2

在嘗試運行程式之前嘗試使用此命令

su <username> -

當我嘗試遠端使用 ssh 運行 powershell 或 cmd 時,我遇到了類似的問題。直接從其資料夾執行 powershell 只會導致會話暫停且無法取消。問題出在你的環境。

答案3

我注意到,當我在 wsl 系統(主機)上設定 sshd 並使用 client-cmd 中的 ssh 命令從 Windows 10 系統(客戶端)通過 ssh 進入它,然後嘗試使用 訪問主機 cmd 時/mnt/c/Windows/System32/cmd.exe,我的客戶端凍結了。

但是當我也在客戶端上啟動 wsl 會話並從那裡連接主機時,不會發生凍結並且我可以訪問主機 cmd。

所以看來linux(ubuntu)版本的openssh可以工作,但windows版本不行。

有趣的事實:如果按照上述方式在主機上取得 cmd 存取權限並輸入notepad.exe,記事本將在主機上開啟並顯示 GUI。

答案4

當你知道確切的路徑後,你可以使用「命令」執行:

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

相關內容