====== Windows 11 の WSL2 による SSH 接続 ======
インターネット経由で宇宙地球環境情報処理システムのサーバにアクセスするには, ログインサーバ (踏み台サーバ)を経由する必要があります. ログインサーバへは SSHの公開鍵認証によりアクセスします. \\
本記事では, Windows11 に Windows Subsystem for Linux 2 (WSL2) をインストールしログインサーバにssh接続します. X11 Forwarding の方法も説明します.
* [[https://learn.microsoft.com/ja-jp/windows/wsl/install|Microsoft の WSLインストールページ]]
* [[:public:about_pdf|PDF について]]
===== 本記事の接続設定 =====
^ ^ホストネーム^ログインネーム^
|サーバ|踏み台サーバ|踏み台username|
|クライアント|localhost|クライアントusername|
===== WSL2 のコマンドインストール =====
==== OSバージョン確認 ====
PowerShell もしくはコマンドプロンプトを「管理者として実行」を選択し({{ :public:win11_wsl2_ssh:shell.jpg?linkonly |}}) を起動する. Windows Terminal ((Windwos 11 でデフォルトで使えるターミナル. タブが使え、カスタマイズもしやすい. ([[https://learn.microsoft.com/ja-jp/windows/terminal/|Windows ターミナルについて(Microsoft公式)]] ) )) でも PowerShell もしくはコマンドプロンプトを開ける ({{:public:win11_wsl2_ssh:terminal.jpg?linkonly|}}). \\
OS のバージョンは
PS C:\Windows\System32> winver
で確認できる. ここでは、Windows11 バージョン 23H2 を使用する.
==== Linuxディストリビューションの選択、インストール ====
WSL2 をオンラインでインストールするLinux ディストリビューションは「wsl -l -o」で確認できる.
PS C:\Windows\System32> wsl -l -o
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install ' を使用してインストールします。
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.5 openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed openSUSE Tumbleweed
※ コマンドではなく Microsoft Store からもインストールでき, 上記以外のディストリビューション(例えばAlmaLinux)もインストールできる.
ここでは、**Ubuntu-22.04** をインストールする ({{ :public:win11_wsl2_ssh:wsl_install.jpg?linkonly |}}).
wsl --install -d Ubuntu-22.04
指示のとおりシステムを再起動する.
==== Ubuntu Linux の起動と初期設定 ====
再起動すると自動的に Ubuntu が起動するが, 起動しない場合はメニューから起動する. ユーザー名(クライアントusername)とパスワードを入力する.
Enter new UNIX username: クライアントusername
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
...
Ubuntu を更新する.
username@localhost:/etc/apt$ sudo apt update
username@localhost:/etc/apt$ sudo apt -y full-upgrade
Timezone, locale を確認し, 必要であれば適宜変更する.
username@localhost:/etc/apt$ timedatectl
Local time: Fri 2024-01-12 11:51:24 JST
Universal time: Fri 2024-01-12 02:51:24 UTC
RTC time: Fri 2024-01-12 02:51:24
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: inactive
RTC in local TZ: no
username@localhost:/etc/apt$ localectl status
System Locale: LANG=C.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
===== 鍵ペアの作成 =====
ssh鍵を作成する. (#以降はコメント)
username@localhost:~$ ssh-keygen -t ecdsa -b 384
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_ecdsa):
Created directory '/home/username/.ssh'.
Enter passphrase (empty for no passphrase): # パスフレーズ入力
Enter same passphrase again: # パスフレーズ入力
Your identification has been saved in /home/username/.ssh/id_ecdsa
Your public key has been saved in /home/username/.ssh/id_ecdsa.pub
The key fingerprint is:
SHA256:qIOIpGWS430BdmS8b+6ARH5JUoLj+eDZ4LD4ux8gEXA username@Win11
The key's randomart image is:
+---[ECDSA 384]---+
|+ E..+ |
| = =. |
|o o= o. |
|.B+ =... |
|XoXo +o S |
|B@o=o..o |
|+o.o+oo |
| . .o.. |
| o+. .. |
+----[SHA256]-----+
===== 鍵の申請 =====
作成した公開鍵 id_ecdsa.pub の登録申請をする. \\
[[https://portal.isee.nagoya-u.ac.jp/iseeadm-bin/acc/skplatform.cgi|isee ログインサーバ申請 (内部ページ)]]
[[http://cidas.isee.nagoya-u.ac.jp/kyodo/regist.shtml.ja|CIDASシステム申請]]
===== 鍵の登録 =====
作成した鍵を ssh-agent に登録する. (#以降はコメント)
username@localhost:~$ eval $(ssh-agent) # ssh-agent を起動する
Agent pid 658
username@localhost:~$ ssh-add ~/.ssh/id_ecdsa # 鍵を登録
Enter passphrase for /home/username/.ssh/id_ecdsa: # パスフレーズ
Identity added: /home/username/.ssh/id_ecdsa (username@Win11)
登録されているかは下記コマンドで確認できる.
username@localhost:~$ ssh-add -l
384 SHA256:qIOIpGWS430BdmS8b+6ARH5JUoLj+eDZ4LD4ux8gEXA username@Win11 (ECDSA)
===== ssh 接続 =====
下記コマンドでssh接続する.\\
-Aオプションは, 認証エージェントを転送する, つまりログインサーバに接続後, 続けて別のサーバに接続する際に, 最初に使った秘密鍵をそのまま使用するためにつける.\\
-Xオプションは X11のポートフォワーディングを有効にする(リモートマシンのXアプリケーションが実行できるようになる)
username@localhost:~$ ssh 踏み台username@踏み台サーバ -AX
The authenticity of host '踏み台サーバ' can't be established.
ED25519 key fingerprint is SHA256:TTWvEs781VjJwKrzOLJVDtTbLUn/1Ut00as1oihi5QI.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '踏み台サーバ' (ED25519) to the list of known hosts.
踏み台サーバからさらに目的のサーバにssh接続する。
==== X11のポートフォワーディングについて ====
WSL2 では、デフォルトで GUI 表示ができる. X サーバを新たにインストールする必要はない. \\
[[https://learn.microsoft.com/ja-jp/windows/wsl/tutorials/gui-apps|Linux 用 Windows サブシステム で Linux GUI アプリを実行する]]
===== メモ =====
* [[public:win11_wsl2_ssh:memo|便利メモはこちら]]
----
* [[public:macos10_openssh|OpenSSH on macOS 10.15]]