8
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Win32-OpenSSHで公開鍵認証を行う

Last updated at Posted at 2018-05-25

Windows環境にOpenSSHをインストールして、公開鍵認証の設定を行いました。

#使用した環境

  • OpenSSHのサーバー
    Windows Server 2012 R2
    Win32-OpenSSH 0.0.24.0(64-bit)
    PSTools 2.45

  • OpenSSHのクライアント
    Windows Server 2008 R2
    Win32-OpenSSH 0.0.24.0(64-bit)
    PSTools 2.45

たまたま使える環境がこの2台だったためOSが揃っていませんが、この組み合わせでなければいけないということはありません。

#Win32-OpenSSHのインストール
Win32-OpenSSHは、サーバー側、クライアント側の両方にインストールします。
以下の手順でインストールしました。

  • https://github.com/PowerShell/Win32-OpenSSH/releases」から「OpenSSH-Win64.zip」をダウンロードします。
    32 bit OSの場合は、「OpenSSH-Win32.zip」を使用してください。
  • 「OpenSSH-Win64.zip」を展開し、任意の場所に配置します。
  • Windows Powershellを管理者で起動します。
  • 以下のコマンドを実行します。
cd OpenSSH-Win64.zipの展開先フォルダパス” 
Set-ExecutionPolicy Unrestricted
.\install-sshd.ps1
ssh-keygen.exe A
.\FixHostFilePermissions.ps1 -Confirm:$false
Set-ExecutionPolicy Restricted
cd PSTools展開先フォルダパス”
psexec.exe -i -s cmd.exe
  • 新たに起動されたコマンド プロンプトで以下のコマンドを実行します。
ssh-add ssh_host_dsa_key
ssh-add ssh_host_rsa_key
ssh-add ssh_host_ecdsa_key
ssh-add ssh_host_ed25519_key
  • Windows ファイアウォールの詳細設定でsshdの受信を許可します。
  • Windowsサービス画面で[ssh-agent]と[sshd]のスタートアップの種類を自動にし、サービスを開始します

#公開鍵認証の設定(クライアント側)
クライアント側のマシンに公開鍵認証の設定を行います。

  • コマンド プロンプトを起動し、以下のコマンドを実行します。
ssh-keygen -t rsa -f id_rsa
net start ssh-agent
ssh-add id_rsa

1行目のssh-keygenコマンドを実行するとpassphraseを聞いてくるので、空を指定します。

#公開鍵認証の設定(サーバー側)
サーバー側のマシンに公開鍵認証の設定を行います。

  • クライアント側に作成された「id_rsa.pub」ファイルをリモートサーバーにコピーします。
    • コピー元:クライアント側の「OpenSSH-Win64.zipの展開先フォルダ\id_rsa.pub」
    • コピー先:サーバー側の「%systemdrive%\Users<user>.ssh\authorized_keys」
  • 配置した「authorized_keys」のプロパティ画面でアクセス許可に「NT Service\sshd」を追加し、[読み取り]を許可します。

[読み取り]以外の項目を許可するとエラーになるため、[読み取り]のみを許可する必要があります!

#確認
クライアント側のマシンでコマンド プロンプトを起動し、以下のコマンドを実行します。

cd “OpenSSH-Win64.zipの展開先フォルダパス” 
ssh -i .\id_rsa user@host

2行目のuser部分にはサーバー側の設定でコピー先パスの部分に指定したユーザーを、host部分にはサーバー側のマシン名を指定します。

続けて、以下のコマンドを実行します。

Are you sure you want to continue connecting (yes/no)?

「yes」と入力して[Enter]キーを押します。

コマンド プロンプトのウィンドウタイトルが「OpenSSH SSH client」に切り替わったら、リモートログイン成功です。

#参考URL

8
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?