Windows

WindowsからLinuxへのSSH鍵認証の実現

WindowsからLinux環境へSSH接続する場合、パスワード認証とSSH鍵認証があります。繰り返し接続を行うのでSSH鍵認証にします。~/.ssh/configを使うとユーザの入力なども省略可能になり便利です。

鍵の作成

ssh-keygenコマンドを使いRSA形式のSSH鍵ペアを作成する。鍵ペアを作成する際、パスフレーズの入力を求められますが、入力すると秘密鍵がこのパスフレーズで暗号化される事に対し、省略すると平文のままとなります。そのためパスフレーズを省略する場合秘密鍵の盗難により注意が必要です。

デフォルトで C:\Users\<ユーザ名>\.ssh\id_rsaid_rsa.pub が生成される。

Windows環境(クライアント側)でSSH鍵の作成
ssh-keygen -t rsa -b 4096 -C "sooni@soopc"
作成例
sooni >> ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\sooni/.ssh/id_rsa): ←保存先
Enter passphrase (empty for no passphrase):  ←今回パスフレーズの設定はしない
Enter same passphrase again:
Your identification has been saved in C:\Users\sooni/.ssh/id_rsa  ←作成した秘密鍵
Your public key has been saved in C:\Users\sooni/.ssh/id_rsa.pub ←作成した公開鍵
The key fingerprint is:
SHA256:GVh1W4v2vHnros5B1qrx67g9Kta+cQWxW2N9Kr1pQuw sooni@mahirospc ←fingerprint
The key's randomart image is:
+---[RSA 4096]----+
|        ..... .  |
|       o   .o+.. |
|      . .  o++...|
|         o o*+...|
|        S  ++o=  |
|          ooo. = |
|        .o +E * .|
|       o .X..+ ..|
|      . oB*O+ oo |
+----[SHA256]-----+
sooni >>
作成した鍵の確認
sooni >> cd .ssh
.ssh >> ls

    Directory: C:\Users\sooni\.ssh

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          2025/09/20    14:04           3381 id_rsa       ←秘密鍵
-a---          2025/09/20    14:04            742 id_rsa.pub  ←公開鍵

.ssh >>
SSHクライアント設定ファイルへ接続情報を記載する

SSHクライアント設定ファイル(~/.ssh/config)へ以下を追記(存在しない場合は新規作成)する。このファイルは、OpenSSHクライアントに含まれるコマンド(ssh/scp/sftpなど)が参照します。

Host vm105
    HostName vm105
    User sooni
    IdentityFile C:\Users\sooni\.ssh\id_rsa

サーバ側へ公開鍵を登録

作成した公開鍵をサーバ側へ登録
## 公開鍵をサーバ側へコピー
.ssh >> scp ./id_rsa.pub sooni@vm105:/home/sooni/.
sooni@vm105's password:
id_rsa.pub                                                                            100%  738   240.2KB/s   00:00
.ssh >>

## sshでログイン
.ssh >> ssh sooni@vm105
sooni@vm105's password:
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Sat Sep 20 17:57:29 2025 from 192.168.56.1

## 先ほどコピーした公開鍵を確認
[sooni@vm105 ~]$ ls -l ./id_rsa.pub
-rw-r--r--. 1 sooni sooni 738  9月 20 18:01 ./id_rsa.pub

## 公開鍵を公開鍵許可リストへ登録する
[sooni@vm105 ~]$ cat ./id_rsa.pub > ~/.ssh/authorized_keys
[sooni@vm105 ~]$

## 不要になった公開鍵を削除
[sooni@vm105 ~]$ rm ./id_rsa.pub

サーバ側への接続確認

## sshで接続してもパスワードを聞かれなくなりました
.ssh >> ssh sooni@vm105
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Sat Sep 20 18:24:08 2025 from 192.168.56.1
[sooni@vm105 ~]$

## sftp接続もこの通り
.ssh >> sftp sooni@vm105
Connected to vm105.
sftp>

## scpもこの通り
sooni >> scp ./test.txt vm105:/home/sooni/.
test.txt                                                                              100%    4     2.0KB/s   00:00

## 念のためsshで接続してファイルコピーができているか確認
sooni >> ssh sooni@vm105
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Sat Sep 20 18:37:26 2025 from 192.168.56.1
[sooni@vm105 ~]$ ls -l /home/sooni/test.txt
-rw-r--r--. 1 sooni sooni 4  9月 20 18:42 /home/sooni/test.txt
[sooni@vm105 ~]$
スポンサーリンク
タイトルとURLをコピーしました