在 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