0. 前置き
WSL2 といえば Ubuntu ですが、実務を考慮して AlmaLinux*1 をインストールします。
*1 RHEL 系なので同様のはずだけど、なぜか WSL2 では RockyLinux がサポート外になっている。
今回は Teraterm で操作可能にします。
1. WSL2 の準備と AlmaLinux のインストール
1-1. WSL2 を有効にする。
すでに WSL2 が有効なら実施しない。→ 1-2 へ。1-2. WSL2 に Linux をインストールする。
− □ × >_ Windows PowerShell × + | ∨
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. 新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows PS C:\> # WSL の状態を確認する PS C:\> wsl --status ⏎ • WSL が無効の場合• WSL が有効の場合 (Linux がまだインストールされていない)
Linux 用 Windows サブシステムがインストールされていません。 'wsl.exe --install' を実行してインストールできます。詳細については、https://aka.ms/wslinst all にアクセスしてください • WSL が有効の場合 (AlmaLinux がインストールされている)
既定のバージョン: 2 WSL1 は、現在のマシン構成ではサポートされていません。 WSL1 を使用するには、"Linux 用 Windows サブシステム" オプション コンポーネントを有効にして ください。 PS C:\> # WSL2 を有効にする PS C:\> wsl --install --no-distribution ⏎ ダウンロード中: Linux 用 Windows サブシステム 2.7.8 [==========================80.0%============= ] インストール中: Linux 用 Windows サブシステム 2.7.8 Linux 用 Windows サブシステム 2.7.8 はインストールされました。 Windows オプション コンポーネントをインストールしています: VirtualMachinePlatform 展開イメージのサービスと管理ツール バージョン: 10.0.26100.5074 イメージのバージョン: 10.0.26100.8328 機能を有効にしています [==========================100.0%==========================] 操作は正常に完了しました。 要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。 要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。 PS C:\> # PC を再起動させる PS C:\> shutdown /r /t 0 ⏎
既定のディストリビューション: AlmaLinux-9 既定のバージョン: 2 WSL1 は、現在のマシン構成ではサポートされていません。 WSL1 を使用するには、"Linux 用 Windows サブシステム" オプション コンポーネントを有効にして ください。 ここで PC が再起動する
AlmaLinux-9 をインストールする。
− □ × >_ Windows PowerShell × + | ∨
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. 新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows PS C:\> # インストール可能な Linux を確認する PS C:\> [Console]::OutputEncoding=[Text.Encoding]::Unicode; wsl --list --online | Select-String "alma|rocky" ⏎ AlmaLinux-8 AlmaLinux OS 8 AlmaLinux-9 AlmaLinux OS 9 ← 今回はこれをインストールする AlmaLinux-Kitten-10 AlmaLinux OS Kitten 10 AlmaLinux-10 AlmaLinux OS 10 PS C:\> # AlmaLinux-9 をインストールする PS C:\> wsl --install AlmaLinux-9 ⏎ ダウンロードしています: AlmaLinux OS 9 [==========================80.0%============= ] ダウンロードしています: AlmaLinux OS 9 インストールしています: AlmaLinux OS 9 [==========================100.0%==========================] ディストリビューションが正常にインストールされました。'wsl.exe -d AlmaLinux-9' を使用して起動 できます AlmaLinux-9 を起動しています... Please create a default UNIX user account. The username does not need to match your Windows u sername. For more information visit: https://aka.ms/wslusers Enter new UNIX username: who Changing password for user who. New password: password ← 実際は表示されない Retype new password: password passwd: all authentication tokens updated successfully.AlmaLinux-9 へ自動的にログインされる
[who@pc who]$ # Linux バージョンを確認する [who@pc who]$ cat /etc/system-release AlmaLinux release 9.8 (Olive Jaguar) [who@pc who]$ # IP アドレスを確認する [who@pc who]$ hostname -I 172.31.55.38 ← このアドレスに対してアクセスする [who@pc who]$ # ホスト名を変更する (1) (sudo なのでパスワードを入力する) [who@pc who]$ sudo bash -c "cat << EOF >> /etc/wsl.conf [network] hostname = pc generateHosts = false EOF" [who@pc who]$ # ホスト名を変更する (2) [who@pc who]$ sudo bash -c "echo '127.0.0.1 pc' >> /etc/hosts" [who@pc who]$ # ssh サーバをインストールする [who@pc who]$ sudo dnf install -y openssh-server [who@pc who]$ sudo systemctl start sshd [who@pc who]$ systemctl status sshd ● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enanabled) Active: active (running) since Sat 2026-06-20 17:39:55 JST; 2h 5min ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 42 (sshd) Tasks: 1 (limit: 49304) Memory: 5.6M (peak: 7.9M) CPU: 261ms CGroup: /system.slice/sshd.service mq42 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups" Jun 20 17:39:55 pc systemd[1]: Starting OpenSSH server daemon... Jun 20 17:39:55 pc sshd[42]: Server listening on 0.0.0.0 port 22. Jun 20 17:39:55 pc sshd[42]: Server listening on :: port 22. Jun 20 17:39:55 pc systemd[1]: Started OpenSSH server daemon. Jun 20 17:40:16 pc sshd-session[368]: Accepted password for who from 172.31.48.1 port 56973 > Jun 20 17:40:16 pc sshd-session[368]: pam_unix(sshd:session): session opened for user who(ui> [who@pc who]$ # AlmaLinux-9 からログアウトする [who@pc who]$ exit PS C:\> # AlmaLinux-9 を終了する (→ 次回起動時にホスト名が有効になる) PS C:\> wsl --shutdown ⏎ PS C:\> exit ⏎
2. ssh の接続を準備する。
公開鍵を作成して Linux に設置することにより、Windows の ssh クライアントからパスワードなしでログインできるようにする。
− □ × >_ Windows PowerShell × + | ∨
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. 新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows PS C:\> # OpenSSH のバージョンを確認する PS C:\> ssh -V ⏎ OpenSSH_for_Windows_9.5p2, LibreSSL 3.8.2 PS C:\> # 公開鍵ペアを作成する PS C:\> mkdir "$env:USERPROFILE\.ssh\" -Force ⏎ PS C:\> ssh-keygen -t ed25519 -f "$env:USERPROFILE\.ssh\id_ed25519" --% -N "" ⏎ Generating public/private ed25519 key pair. Your identification has been saved in C:\Users\who\.ssh\id_ed25519 Your public key has been saved in C:\Users\who\.ssh\id_ed25519.pub The key fingerprint is: SHA256:AxehgTfqfsHWguSeOD56V43Kgmq4zql8UWp2k3JGfxM who@pc The key's randomart image is: +--[ED25519 256]--+ | .. o. | | . oo . | | oo.. | | oo o E | | +*oooS.. | | *+**.++ | |. o=*=.+. . | |+.B.* + | |O@o+ o | +----[SHA256]-----+ PS C:\> # 公開鍵を確認する PS C:\> type "$env:USERPROFILE\.ssh\id_ed25519.pub" ⏎ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIczpHzpIOD6bMEzzQw+ZSAtJ3rKlezWmN7DLZiUpg/HW who@pc PS C:\> # AlmaLinux-9 に公開鍵を設置する PS C:\> wsl bash -c "mkdir -p ~/.ssh/ ; chmod 700 ~/.ssh/" ⏎ PS C:\> wsl bash -c "touch ~/.ssh/authorized_keys ; chmod 644 ~/.ssh/authorized_keys" ⏎ PS C:\> type "$env:USERPROFILE\.ssh\id_ed25519.pub" | wsl bash -c "cat >> ~/.ssh/authorized_keys" ⏎ PS C:\> # 公開鍵が設置されたことを確認する PS C:\> wsl bash -c "cat ~/.ssh/authorized_keys" ⏎ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIczpHzpIOD6bMEzzQw+ZSAtJ3rKlezWmN7DLZiUpg/HW who@pc PS C:\> exit ⏎パスワード無しの SSH ログインが可能になった
3. Teraterm で AlmaLinux-9 へログイン
WSL2 はプロセスが何もないとデーモンごとスリープしたままになるので、
これを回避するためダミープロセスを起動してからログインする。
sleep 3 は WSL2 が起動までの待ち秒数。PC の性能に合わせて調整すると良い。
− □ × >_ Windows PowerShell × + | ∨
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. 新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows PS C:\> # Linux の IP アドレスを確認する PS C:\> wsl -- hostname -I ⏎ 172.31.55.38 PS C:\> # WSL2 を起動して Teraterm で接続する PS C:\> Start-Process wsl -ArgumentList "-- sleep infinity" -WindowStyle Hidden ; ` sleep 3 ; ` & "C:\Program Files (x86)\teraterm\ttermpro.exe" who@172.31.55.38 ` /ssh2 /auth=publickey /keyfile="$HOME\.ssh\id_ed25519" ; ` exit ⏎Teraterm を起動してこのウィンドウは消える
終了するときは Teraterm の中から pkill sleep を実行する。
💻 172.31.55.38 - who@pc:~ VT [who@pc ~]$ ps aux | grep -v grep | grep sleep who 57 0.0 0.0 5608 1936 pts/0 Ss+ 19:59 0:00 sleep infinity [who@pc ~]$ pkill sleep