WSL에서 .exe 실행은 Windows 자체에서 작동하지만 SSH를 사용하는 경우에는 작동하지 않습니다.

WSL에서 .exe 실행은 Windows 자체에서 작동하지만 SSH를 사용하는 경우에는 작동하지 않습니다.

WSL/Ubuntu에서는 다음을 통해 실행 파일을 열거나 실행할 수 있습니다.

user@desktop: notepad.exe

그러면 메모장이 열립니다. 그러나 iPad와 같은 다른 클라이언트에서 WSL로 SSH를 통해 연결하는 경우 해당 명령을 입력하면 다음과 같은 오류가 반환됩니다.

command not found

왜 그럴까요? 이것이 달성 가능한 일입니까? 감사해요!

답변1

메모장은 Windows 디스플레이 서버를 사용하지만 SSH 클라이언트는 X 서버를 기대하기 때문에 불가능합니다.

X 서버 전달을 지원하는 메모장 대신 gedit와 같은 것을 설치할 수 있습니다.

그런 다음 다음을 사용하여 서버에 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에 액세스할 수 있습니다.

따라서 openssh의 Linux(ubuntu) 버전은 작동하지만 Windows 버전은 작동하지 않는 것 같습니다.

재미있는 사실: 위에 설명된 대로 호스트에서 cmd 액세스 권한을 얻고 를 입력하면 notepad.exe호스트에서 GUI를 사용하여 메모장이 열립니다.

답변4

정확한 경로를 알고 있으면 "command"를 사용하여 실행할 수 있습니다.

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

관련 정보