目次
Windows 10 OpenSSH
インターネット経由で宇宙地球環境情報処理システムのサーバにアクセスするには, ログインサーバ (踏み台サーバ)を経由する必要があります. ログインサーバへは SSHの公開鍵認証によりアクセスします. 本記事では, Windows10 に標準でインストールされている OpenSSH と PowerShell を使用します. また, X11 Forwarding の方法も説明します.
※ Windows 11 で X11 Forwarding するには, X Window System アプリを別途インストールする必要がないため、WSL2 が簡単です.
※PDF について
本記事の接続設定
ホストネーム | ログインネーム | |
---|---|---|
サーバ | 踏み台サーバ | 踏み台username |
クライアント | localhost | username |
PowerShell の起動
Windows 10 OpenSSH は PowerShell を利用する. PowerShell は, "start" → "Windows PowerShell"から起動する.
※ターミナルは Windows Terminal が使いやすい. Windows10 では、インストール が必要だが、Windows 11 バージョン 22H2 以降は Windows Terminal が既定のターミナルとなり PowerShellを起動すると Windows Terminal が自動的に起動する。
OpenSSHの確認
OpenSSH クライアントがインストールされているか, PowerShell の下記コマンドで確認する.
PS C:\> gcm ssh | fl Name : ssh.exe CommandType : Application Definition : C:\WINDOWS\System32\OpenSSH\ssh.exe Extension : .exe Path : C:\WINDOWS\System32\OpenSSH\ssh.exe FileVersionInfo : File: C:\WINDOWS\System32\OpenSSH\ssh.exe InternalName: OriginalFilename: FileVersion: 7.7.2.1 ...
上記のように, ssh.exe の詳細が表示されれば, インストール済みである.
表示されない場合は管理者権限で Windows Update (バージョン1803以降) を行うと, 標準で OpenSSH クライアントがインストールされる. もしされない場合は, 管理者権限で “設定” → “アプリ” →"オプション機能" で, 機能の追加を選択し, OpenSSH クライアントをインストールする.
鍵の作成
PowerShell を起動し, ssh鍵を作成する. (#以降はコメント)
PS C:\> ssh-keygen -t ecdsa -b 384 Generating public/private ecdsa key pair. Enter file in which to save the key (C:\Users\username\.ssh\id_ecdsa): # enter Enter passphrase (empty for no passphrase): # パスフレーズ入力 Enter same passphrase again: # パスフレーズ入力 Your identification has been saved in test. Your public key has been saved in test.pub. The key fingerprint is: SHA256:UQwYcMTRGPdEDwQ7y4z5OS+j9PhFpavrKZ3W7jEuH1E username@localhost The key's randomart image is: +---[ECDSA 384]---+ | .+*B+** | | .+..=.o | | + . E | | = + + | | o S + | | . o o | | ..+o* | | ..oBB.+ | | o*BO* | +----[SHA256]-----+
作成した鍵はデフォルトで(C:\Users\username\.ssh\id_ecdsa)に作成される. 鍵はユーザー配下のフォルダに置かないと使用できない場合がある.
鍵の申請
作成した公開鍵 id_ecdsa.pub の登録申請をする.
isee ログインサーバ申請 (内部ページ)
CIDASシステム申請
鍵の登録 (ssh-agent)
ssh接続でのパスフレーズ入力を省き, ログインサーバ (踏み台サーバ) に秘密鍵を置くのを避けるため, ssh-agentを利用する.
“スタート” → “Windows管理ツール” → “サービス”で, サービス画面を開く(左図). "OpenSSH Authentication Agent"のプロパティを開き, スタートアップの種類は自動を選び, 開始を押し(プロパティ), ssh-agentサービスを起動する.
続いて, 秘密鍵 id_ecdsaを登録する.
PS C:\> ssh-add 'C:\Users\username\.ssh\id_ecdsa' Enter passphrase for C:\Users\username\.ssh\id_ecdsa: # パスフレーズ入力 Identity added: C:\Users\username\.ssh\id_ecdsa (C:\Users\username\.ssh\id_ecdsa)
登録した鍵は, “ssh-add -l” で確認できる. もし登録した鍵を削除したい場合には “ssh-add -D” で削除する.
SSH接続
下記コマンドでssh接続する. -Aオプションは, 認証エージェントを転送する, つまりログインサーバに接続後, 続けて別のサーバに接続する際に, 最初に使った秘密鍵をそのまま使用するためにつける.
PS C:\> ssh 踏み台username@踏み台サーバ -A The authenticity of host '踏み台サーバ (***.***.***.***)' can't be established. ECDSA key fingerprint is SHA256:UQwYcMTRGPdEDwQ7y4z5OS+j9PhFpavrKZ3W7jEuH1E. Are you sure you want to continue connecting (yes/no)? # yes Warning: Permanently added 踏み台サーバ,***.***.***.***' (ECDSA) to the list of known hosts.
X転送
リモート接続時に X Window System (X11) を転送して, xアプリケーションウィンドウをローカルホストで利用する.
まず, VcXsrv Windows X Server をダウンロードし, インストールする.
VcXsrv ダウンロード
起動画面ではデフォルトで進み, 最後の"finish configuration" 画面で, “save configuration”を押し, 適当な場所に設定を保存する (設定ファイルのデフォルト名は config.xlaunch).
設定ファイルをダブルクリックすることで, VcXsrv Windows X Server が起動するようになるが, 自動起動させるために, スタートアップに登録する.
“スタート” → “Windows システムツール” →"ファイル名を指定して実行"で, shell:startup と打ち, スタートアップのフォルダを開く. さきほど保存した設定ファイル config.xlaunch をスタートアップフォルダに移動する.
次に, 環境変数DISPLAYを設定する. VcXsrv Windows X Server が起動しているとインジケーターにアイコンが表示されるが, アイコンの上にマウスを乗せると “localhost:0.0 -1 clients” のように表示されるので, この localhost:0.0 を環境変数DISPLAYに設定する. ここでの locaohost 部分は, ローカルのホストネーム, 127.0.0.1, localhost のいずれでもよい.
PS C:\ [System.Environment]::SetEnvironmentVariable("DISPLAY", "localhost:0.0", "User")
PS を再起動し, 設定されているか確認する.
PS C:\ $env:DISPLAY localhost:0.0
x転送を許可するオプションを追加し, ssh接続する. xアプリケーションを起動し, 転送できているかを確認する.
PS C:\ ssh -AXY 踏み台username@踏み台サーバ
ssh接続設定のファイル
以上の設定をファイルに保存し (C:\Users\username\.ssh\config), sshコマンドを省略できる.
* IdentityFile は秘密鍵を ssh-agent に登録するため必要ないが, 記録のため記述しておくとよい.
Host 踏み台 ForwardAgent yes ForwardX11 yes ForwardX11Trusted yes User 踏み台username HostName 踏み台サーバ IdentityFile "C:\Users\username\.ssh\id_ecdsa"
下記コマンドでssh接続できる.
PS C:\ ssh 踏み台