パスワード入力なしでSSH接続させたいとき、公開鍵認証で接続するのが一般的だが、SSHサーバー側も、クライアント側もWindows環境であり、かつ接続先が複数あるときの設定方法が分かりづらかったので、パスワード入力無しでSSH接続できるまでのメモ。
ただし前提条件として、クライアント側もサーバー側もOpenSSH(SSH)で既にパスワード認証方式で接続できる環境が整っていることとする。
現行(イメージ図)

この覚え書きを読んでできること

各サーバーの設定
sshdの設定変更
接続先のサーバー上で、コマンドプロンプトを管理者権限で開く

コマンドプロンプト上で 以下を入力

notepad %ProgramData%\ssh\sshd_config
最後の2行の先頭に # を入れてコメント化(無効化)する。
(Match Group administrationsのところ)

SSH公開鍵を作成する
ssh-keygen
途中色々聞かれるがすべてエンターで進んでいけば良い。
緑色で囲ったPath名を覚えておく。

保存された公開鍵のファイル名の変更とアクセス権を設定する。
id_rsa.pubを authorized_keysへリネームする。
そのファイルのアクセス権がEveryone(誰でも見られる 状態 )だとsshdが受け付けてくれないので、Everyoneからアクセスできないように設定する。
cd %USERPROFILE%\.ssh
ren id_rsa.pub authorized_keys
icacls authorized_keys /remove Everyone

以上の設定を行ったら念の為sshdを再起動しておく。
net stop sshd
net start sshd

以上でサーバー側の設定は完了
クライアント側の設定
接続元のクライアントPCにてコマンドプロンプトを開き、.ssh ディレクトリを作成して、カレントディレクトリを ..ssh にする。
既に存在すれば下の画面のようになるし、無ければディレクトリが作成される。
mkdir .ssh
cd .ssh

リモートサーバーから公開キーを取得します。
下記はリモートSSHサーバーの IPアドレス = 192.168.0.106、
PC名 = 任意の名前(例ではaspire)
の場合

scp 192.168.0.106:.ssh/id_rsa id_rsa.aspire
scpするときはまだ公開キーが取得できていないのでパスワードを要求される。
公開キーを取得できたら、パスワード無しでssh接続できるか確認する。
ssh -i c:\Users\pcm_n.ssh\id_rsa.aspire 192.168.0.106


パスワード無しで接続できました。
しかし毎回オプションと公開鍵のPathをつけて呼び出すのは煩わしいので
ssh 192.168.0.106
ssh aspire
と入力すれば接続できるように設定をします。
notepad %USERPROFILE%\.ssh\config

赤枠で囲った部分が今回追加した部分
複数のホストを登録したい(例:FMVA77WW等)場合は下記の例のように追加していきます。

上記の内容で保存すればパスワード無しでアクセスできるようになります。

パスワード無しでssh接続できました。

先程の設定例だと、Hostで指定した別名でもアクセス可能です。

以上 Windows(SSH) – Windows(SSH) でパスワード無しで接続するための覚え書きでした。
参考
Windows 10 : SSH鍵ペア認証
https://www.server-world.info/query?os=Other&p=windows10&f=4
~/.ssh/config で簡単に複数ホストへのSSH接続を管理する
http://superbrothers.hatenablog.com/entry/20090730/1248971671
コメント