Windows 10 : SSH鍵ペア認証2019/02/13 |
SSH クライアント用の秘密鍵と SSH サーバー用の公開鍵の鍵ペアを作成し、鍵ペアによる認証でログインできるようにします。
|
|
[1] |
デフォルト設定では [Administrators] グループのみ、公開鍵 (authorized_keys) の場所が OpenSSH デフォルトの [.ssh\authorized_keys] ではなく、
以下のパス/ファイル名に設定されているため注意です。もし、全ユーザーで設定を合わせたい場合は、事前に、管理者権限で設定ファイルの最終
2行をコメントにしてサービスを再起動しておく必要があります。
⇒ 設定ファイル [C:\ProgramData\ssh\sshd_config]
|
[2] |
SSH 鍵ペアを作成したい任意のユーザーでログオンして設定します。
PS > ssh-keygen 以下のように [ssh-keygen] コマンドで鍵ペアを生成します。 コマンド実行後、ホームフォルダー配下に [.ssh] フォルダーが作成され、その配下に鍵ペアが生成されます。 |
[3] |
[.ssh] フォルダーへ移動し、公開鍵のファイル名を [authorized_keys] にリネームします。
PS > cd .ssh [1] に記載した通り、Windows OpenSSH デフォルト設定のままの場合 且つ [Administrators] グループ所属の場合は [authorized_keys] ではなくファイル名が異なるため注意です。 PS > mv id_rsa.pub authorized_keys |
[4] |
公開鍵 [authorized_keys] のアクセス権を変更しておきます。
デフォルトで Everyone に読み取り権限が付加されますが、これがあると SSH 鍵認証が通らないため、削除します。
PS > icacls authorized_keys /remove Everyone
SSH サーバー側の設定は以上です。次は接続元の SSH クライアントホストに移動します。
|
[5] |
接続元の SSH クライアントホスト上で SSH 秘密鍵を設定したいユーザーでログオンし、PowerShell またはコマンドプロンプトを起動します。
PS > mkdir .ssh その後、ホームフォルダー直下に [.ssh] フォルダーを作成し、その配下に SSH サーバー側から秘密鍵を転送します。 SSH サーバーへの接続は現時点ではパスワードでの認証となります。 PS > cd .ssh PS > sftp (ユーザー名)@(SSHサーバーのホスト名 または IPアドレス) sftp > cd .ssh sftp > get id_rsa sftp > exit |
[6] |
以上で準備完了です。SSH サーバーへ SSH 接続してパスワード入力不要でログインできることを確認します。
(鍵の生成時にパスフレーズを設定した場合は、パスフレーズの入力は求められます)
PS > ssh (ユーザー名)@(SSHサーバーのホスト名 または IPアドレス) |