【Windows11】PowerShellでSSH接続(鍵認証)を行う方法

Windows11のPowerShellコマンド「ssh-keygen」でSSH鍵を作成する方法を解説します。

OpenSSHでSSH接続

Windows 11では、追加のソフトをインストールせずに、標準搭載されている「OpenSSHクライアント」でSSH接続が可能です。
本ページでは、PowerShellを使ったSSH接続の手順を詳しく解説します。

OpenSSHクライアントの確認

Windows 11には「OpenSSHクライアント」が標準搭載されていますが、念のため確認しましょう。

🔍 インストール確認

PowerShellで以下を入力:

ssh

SSHのヘルプが表示されれば、すでにインストール済みです。

もし、ヘルプが表示されなければ、以下の手順でインストール手順します。

① スタートメニュー →「設定」
② 「アプリ」→「オプション機能」
③ 「機能を追加する」→「OpenSSH クライアント」を選択
④ 「インストール」をクリック

SSH鍵の作成(任意)

OpenSSHが入っていることが確認できたら、以下の手順でSSH鍵を作成します。

① 「C:\Users\ユーザー名」配下に「.ssh」フォルダがなければ作成します。
(※「.ssh」フォルダ内にSSH鍵のファイルを保管します)

② Powershellの画面で以下のコマンドを実行します。(※「ユーザー名」は適宜変更)

ssh-keygen -t ed25519 -C "user01@zbx_server" -f "C:\Users\ユーザー名\.ssh\id_ed25519_zbx_server"
オプション 意味
-t 鍵の種類(例:rsa, ed25519)。RSA鍵(特に2048bit以下)は現在ではEd25519よりも弱いとされる
-b ビット数(RSAのみ)
-C コメント | -C "user01@serverA"
-f 鍵ファイルの保存先。省略されるとデフォルト(C:\Users\<ユーザー名>\.ssh\id_rsa)になる
-N パスフレーズ(空なら -N "")。省略すると、コマンド実行後に「Enter passphrase (empty for no passphrase):」と聞かれ、対話式で入力する。

③ 対話形式でパスフレーズを2回聞かれますので、任意で決めたパスを入力して「Enter」キーを押します。

Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase): ←パスワードを入力
Enter same passphrase again: ←もう一度同じパスワードを入力
Your identification has been saved in C:\Users\ユーザー名\.ssh\id_ed25519_zbx_server
Your public key has been saved in C:\Users\ユーザー名\.ssh\id_ed25519_zbx_server.pub
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXX user01@zbx_server
The key's randomart image is:
+--[ED25519 256]--+
| +=*+... .       |
|=.XB*o  . o      |
|+O+O*+ . o       |
|o+E+..o o        |
|=*o . .oS        |
|oo.  . .         |
|..               |
|                 |
|                 |
+----[SHA256]-----+

④ 「C:\Users\ユーザー名.ssh」の中に秘密鍵と公開鍵が作成されていることを確認します。

  • 秘密鍵:id_ed25519_zbx_server
  • 公開鍵:id_ed25519_zbx_server.pub
【Windows11】PowerShellの「ssh-keygen」でSSH鍵を作成する方法
Windows11のPowerShellコマンド「ssh-keygen」でSSH鍵を作成する方法を解説します。

SSH接続(鍵認証)

ssh -i "C:\Users\ユーザー名\.ssh\id_ed25519_zbx_server" username@hostname

② 初回接続時は以下のように対話形式で「Are you sure you want to continue connecting (yes/no)?」と聞かれるので、yes と入力し、Enterキーを押します。

The authenticity of host 'hostname (XXX.XXX.XXX.XXX)' can't be established.
ED25519 key fingerprint is SHA256:/7vm71frenIMPifd5eDlZWRlnwuabMDtJAClD5C7yOU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes ←「yes」と入力してEnterキーを押す

Warning: Permanently added 'hostname' (ED25519) to the list of known hosts.
Enter passphrase for key 'C:\Users\ユーザー名\.ssh\id_ed25519_zbx_server':
Linux raspi5 6.6.31+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Aug  3 16:14:56 2024 from XXX.XXX.XXX.XXX
fuji@raspi5:~ $  ← SSH接続に成功

設定ファイル(.ssh/config`)

複数の接続先を使う場合、設定ファイル(.ssh/config)を使うと便利です。

Host myserver
    HostName 192.168.1.100
    User pi
    IdentityFile C:\Users\ユーザー名\.ssh\id_ed25519_zbx_server

関連ページ

【VSCode】ラズベリーパイをRemote-SSHで接続して遠隔操作(Remote Development)
VSCode(Visual Studio Code)からRemote-SSH(Remote Development)でラズベリーパイを遠隔操作する方法について解説します。
【Mac】RaspberryPi 4をSSH接続して遠隔操作する方法
RaspberryPi4(ラズベリーパイ4)をMacのSSHから接続して操作する方法について紹介します。
【VSCode超入門】基本的な使い方から応用例まで解説
VSCode(Visual Studio Code)の基本的な使い方から応用例まで入門者向けに解説します。
Python超入門速報
【Windows超入門】初心者から上級者までテクニックを解説
Windowsの基本操作と設定基本操作Windowsの基本操作便利なショートカット大全集画面のカスタマイズカスタマイズWindows 11の右クリックメニューを昔のスタイル(Windows 10)に戻す方法Windowsを高速化・軽量化する...

コメント