В WSL/Ubuntu я мог открыть/запустить исполняемый файл следующим образом:
user@desktop: notepad.exe
Это откроет блокнот. Однако, если я подключусь по ssh к WSL с другого клиента, например с iPad, ввод этой команды вернет ошибку:
command not found
Есть идеи, почему так? Это что-то достижимое? Спасибо!
решение1
это невозможно, поскольку блокнот использует сервер отображения Windows, а клиенты SSH ожидают X-сервер.
вы можете установить что-то вроде gedit вместо блокнота, которое поддерживает переадресацию X-сервера.
затем вы можете подключиться к серверу по ssh, используя
ssh -Y user@host
решение2
Попробуйте использовать эту команду перед попыткой запустить программу
su <username> -
У меня была похожая проблема при попытке запустить powershell или cmd при использовании ssh удаленно. Запуск powershell напрямую из его папки просто приводил к зависанию сеанса без возможности его отмены. Проблема в вашей среде.
решение3
Я заметил, что когда я настраиваю sshd на системе wsl (хост) и подключаюсь к ней по ssh из системы Windows 10 (клиент), используя команду ssh в client-cmd, а затем пытаюсь получить доступ к host-cmd с помощью /mnt/c/Windows/System32/cmd.exe
, мой клиент зависает.
Но когда я запускаю сеанс wsl на клиенте и подключаюсь оттуда к хосту, зависаний не происходит, и я могу получить доступ к host-cmd.
Похоже, что версия openssh для Linux (Ubuntu) работает, а версия для Windows — нет.
Интересный факт: если получить доступ к cmd на хосте, как описано выше, и ввести notepad.exe
, на хосте откроется блокнот с графическим интерфейсом.
решение4
Когда вы знаете точный путь, вы можете выполнить команду «command»:
command /mnt/c/windows/system32/ipconfig.exe