ユーザ用ツール

サイト用ツール


public:win10_openssh

Windows 10 OpenSSH

インターネット経由で宇宙地球環境情報処理システムのサーバにアクセスするには, ログインサーバ (踏み台サーバ)を経由する必要があります. ログインサーバへは SSHの公開鍵認証によりアクセスします. 本記事では, Windows10 に標準でインストールされている OpenSSH と PowerShell を使用します. また, X11 Forwarding の方法も説明します.
※ Windows 11 で X11 Forwarding するには, X Window System アプリを別途インストールする必要がないため、WSL2 が簡単です.
PDF について

本記事の接続設定

ホストネームログインネーム
サーバ踏み台サーバ踏み台username
クライアントlocalhostusername

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 踏み台

public/win10_openssh.txt · 最終更新: 2024/01/09 11:27 by hirata.nanako

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki