WindowsからLinux環境へSSH接続する場合、パスワード認証とSSH鍵認証があります。繰り返し接続を行うのでSSH鍵認証にします。~/.ssh/configを使うとユーザの入力なども省略可能になり便利です。
鍵の作成
ssh-keygenコマンドを使いRSA形式のSSH鍵ペアを作成する。鍵ペアを作成する際、パスフレーズの入力を求められますが、入力すると秘密鍵がこのパスフレーズで暗号化される事に対し、省略すると平文のままとなります。そのためパスフレーズを省略する場合秘密鍵の盗難により注意が必要です。
デフォルトで C:\Users\<ユーザ名>\.ssh\id_rsa
と id_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 ~]$