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 で接続し、を使用して host-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

関連情報