SSHクライアントからWSLまたはHyper-Vで稼働するUbuntuを使ってみる
Windows 10もFall Creators Updateが出てしばらく経ちましたが、Bash on Ubuntu on WindowsはWindow Subsystem for Linuxと名称を変え、ストア版が提供されるようになりました。今後はこちらが本流になるようですね。
当面は、従前のbash.exeとストア版が共存するようですが、これを機会にストア版Ubuntuをインストールしてみました。
Ubuntu以外のディストリビューションがサポートされたこともあってか、A Guide to Invoking WSL: Windows Command Line Tools For Developersにあるとおり、WSL起動方法がこれまでのbash.exe以外に提供されるようになりました。
また、Windows 10 Insider Preview Build 17046では、WSLの新機能としてLinuxのdaemonを含むバックグラウンドプロセスのサポートされ、かなり使い勝手が向上しました。
そこで、先日Windows 10上のHyper-VでUbuntuを動かしてネットワーク設定(NAT)を行うで触れたとおり、Hyper-V上で動作するUbuntu環境を構築しましたが、これを機会に、WSLとHyper-Vとで稼働するUbuntuを、WSLコマンドやSSHクライアントから利用する、といったことを試してみました。
WSLでは、bash.exe(コンソール)を起動することなく、daemonサービスを利用することもできるようになりましたので、こちらも試してみました。
試した環境は、
エディション Windows 10 Pro Insider Preview
バージョン 1709
OSビルド 1704.1002
です。
ストア版Ubuntuのインストールには特段問題は生じないと思います。インストール方法はWebサイトを探せば見つかるのでここでは割愛します。
Hyper-Vは管理画面を使わなくても、PowerShell(管理者)からVMの状態表示や起動、停止等の操作が可能です。

予め、ここで稼働しているUbuntu環境ではSSHを有効にしておきます。
また、WSL基盤上で稼働するLinux(ここではUbuntu)も、PowerShell(管理者としてのPowerShellは必要なし)から起動できます。
つまり、bash.exe(コンソール)を起動することなく、daemonサービスを実行できるということ。ここでは、デーモン起動用Shellと停止用Shellをwslコマンドから実行した例を示します。

ここでデーモン起動用Shellと停止用Shellのサンプルはこちら。
デーモン起動用Shell startService.sh
#!/bin/bash
service mysql start
service apache2 start
service ssh start
デーモン停止用Shell stopService.sh
#!/bin/bash
service mysql stop
service apache2 stop
service ssh stop
※ 以下のサンプルを実行するだけなら、mysqlの行は必要ありません。
こうすることで、Hyper-VとWSLの各々に対してSSHログインを行うことができます。

もし、Windows 10上のHyper-VでUbuntuを動かしてネットワーク設定(NAT)を行うの最後に掲載したポートフォーワーディングしている方は、ここではこの設定を削除した状態で説明していますのでご注意下さい。この記事にしたがって設定した場合、WSLはlocalhost、Hyper-Vは192.168.1.11に対してPuTTYによるSSHログインを行いました。
試しに、WSLとHyper-Vを稼働しているマシンからWebサービスを参照してみます。
以上のとおり、サービス起動してSSHログインすることで、WSLコンソールやHyper-Vの管理画面を使用することなくテストや管理を実施することができます。
(おまけ)
Hyper-Vで稼働するUbuntuの共有フォルダの作り方を以下に示します。
VMPlayerなどでは、最初からフォルダ共有サービスが用意されていますが、Hyper-VのLinuxではsambaの設定を行えば同様のことはできます。
/etc/samba/smb.confに設定する、homeディレクトリの共有設定例は以下のとおり。
[homes]
comment = Home Directories
browseable = no
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
read only = no
# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0700
# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0700
共有ディレクトリの共有設定例は以下のとおり。
[SharedFolder]
comment = Share Directory
path = /var/share
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- Amazon Echo Show と Amazon Basic Smart Plug を組み合わせた見守り(2026.01.03)
- フレッツADSL最終終了(2025.12.31)
- AlexaからChatGPTモデルのAIアシスタントと会話するスキルをつくってみた(2025年9月)(2025.09.16)
- Gemini CLIから利用するMCPサーバを自作してSolr全文検索と文献取得するRAGを試してみた(2025.09.06)
- ベクトル検索でなくたっていいじゃない ‐ Solrの全文検索とGemini CLIを使ったなんちゃってRAG ‐(2025.08.21)




コメント