2023年4月9日日曜日

WindowsのSSHクライアントを使って公開鍵認証方式で接続する

Windows 10やWindows Server 2016以降のOSには、SSHクライアントがデフォルトでインストールされており、LinuxなどへSSH接続やSFTPなどによるファイル授受をする際に活用できる。

SSHはOpenSSHにて実装されており、パスワード認証だけでなく公開鍵認証を用いた接続もできる。

本記事では、WindowsのSSHクライアントを使って、公開鍵認証で接続する手順を記載する。

環境

今回の手順を確認したOSは以下の通り。

  • SSHクライアント側
    • OS : Windows Server 2019
    • ユーザ名 : winuser
  • SSHサーバ側
    • OS : AlmaLinux 8.5
    • ユーザ名 : testuser

公開鍵認証による接続手順

1. WindowsのSSHクライアントにて秘密鍵と公開鍵のペアを作成

公開鍵認証方式では、SSHクライアント側の公開鍵をSSHサーバ側に登録することで実現する。

まずは、WindowsのSSHクライアント側で秘密鍵と公開鍵のペアを作成するため、ssh-keygenコマンドを実行する。3回確認を求められる個所があるが、そのままEnterキーを押してスキップすれば問題ない。

PS C:\Users\winuser> ssh-keygen.exe
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\winuser/.ssh/id_rsa):
Created directory 'C:\Users\winuser/.ssh'.
Enter passphrase (empty for no passphrase): ★そのままEnter
Enter same passphrase again: ★そのままEnter
Your identification has been saved in C:\Users\winuser/.ssh/id_rsa.
Your public key has been saved in C:\Users\winuser/.ssh/id_rsa.pub.
The key fingerprint is: ★そのままEnter
SHA256:9TC0QrXmG2Jy/k/dUP5jlontTrGqMJDQfrVKZHxsO1M intrat\winuser@win-server
The key's randomart image is:
+---[RSA 3072]----+
|        ..o      |
|  . . .. . o     |
| . . + =.EB     .|
|  o + + += +   o |
|   + o.=S o.. . .|
|    + .=o. oo..o+|
|     +  . .+...*o|
|      o  .+.o o .|
|       ....+.    |
+----[SHA256]-----+

2. 作成した公開鍵を確認

ssh-keygenで作成すると、ホームディレクトリ配下に、.sshというディレクトリが作成され、以下ファイルが保存される。

  • id_rsa : 秘密鍵
  • id_rsa.pub : 公開鍵

公開鍵の情報が必要となるため以下の通り内容を表示しておく。

PS C:\Users\winuser> cat .\.ssh\id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCiDv+Q71aFBRnrB5WrEbOgIbTpCtTJOBgSnXYQh2YuC7jog+1jvj+j2x+Cyh1zbHLdeTAh4wFNiLkEgLflfS7Vb7REY58TXhr0O/hd++luj5UUXpBbZMJuFxvlQ4COnXDv7p6PTLuy22pdj+oOY1W00cf3tcTVswL271bK+aoXmZwFZzs3NjJiUcjouv6CmoynEobDKPInCxxxtkP12K9y2vLtesytSMw5z6whI4mE6Z+XpPaAPcD1dpwNlOD+tVcocJ1JcGO86cv1Ice3fcJUZghUZ2W+DUY6DFJV578aXI5rPgLbVzIqGt62AokaK61W6R53yvzwNVpkwCvyyyjHcsaxt5NxPVHeQYFmAnkkOYqWkRz47Gt1YVsXsO6y60uDMZ4BriIkJW7SXjSVjNZanOT7QF5huHkoy+o+eJJ3ubMfveVtTVLIiaFzqHsgKUZaIGBOuURT8utcSx7dYOzzzNnz88pp+o7qB/lGqOLxSM447gnXkY3KgibRBn9TzMs= intrat\winuser@win-server

3. SSHサーバ側に公開鍵を登録

SSHサーバ側となるLinuxサーバにログインし、こちらも.sshディレクトリを作成する。なお、すでに作成がされている場合は、以下手順はスキップすること。

[testuser@linux-server ~]$ mkdir .ssh
[testuser@linux-server ~]$ chmod 700 .ssh

.sshディレクトリ内にauthorized_keysというファイルを作成し、先ほど確認したWindowsの公開鍵情報を追記する。

[testuser@linux-server ~]$ vi .ssh/authorized_keys
~(先ほど確認したWindowsの公開鍵情報を追記)~
[testuser@linux-server ~]$ chmod 600 .ssh/authorized_keys

4. 接続確認

以上で設定は完了となる。SSHクライアント側からSSH接続をして確認してみよう。初回接続時は、接続先に問題がいないか確認を求められるためyesを入力しておく。

PS C:\Users\winuser> ssh testuser@192.168.11.193
The authenticity of host '192.168.11.193 (192.168.11.193)' can't be established.
ECDSA key fingerprint is SHA256:onCxxKq7/iPWLneacMTxrBHnAAx46P9dAh1YP/C0Z2Q.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes ★yesを入力
Warning: Permanently added '192.168.11.193' (ECDSA) to the list of known hosts.
Last login: Mon Apr  3 22:02:08 2023 from 192.168.11.81
[testuser@linux-server ~]$

再度接続すると、今度は何も確認を求められることなくSSH接続に成功するはずだ。

PS C:\Users\winuser> ssh testuser@192.168.11.193
Last login: Sat Apr  8 19:33:08 2023 from 192.168.11.81
[testuser@linux-server ~]$

以上で、WindowsのSSHクライアントを使って、公開鍵認証で接続する手順は完了となる。

0 件のコメント:

コメントを投稿

人気の投稿