Windows10+SSHサーバーにWindows10のSSHクライアントにて公開鍵認証でパスワード入力なしで接続できるようにしたときの覚え書き

スポンサードリンク

パスワード入力なしで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

スポンサードリンク