FreeSSHdでRSAキーペアを用いた認証ユーザーを設定する手順を紹介します。
RSAキーペア(公開鍵、秘密鍵)を作成します。キーペアは、OpenSSHやPuTTYgenなどを用いて作成できます。
PuTTYgenを利用して公開鍵、秘密鍵を作成する手順はこちらの記事を参照してください。
FreeSSHdの設定ダイアログを表示します。[Users]タブをクリックします。下図の画面が表示されます。
[Add]ボタンをクリックしユーザーを追加します。[User peoperies]ダイアログが表示されます。
[Login]にログインユーザー名を入力します。[Authorization]は"Public key (SSH only)"を選択します。[User can use]はこの利用者が利用できるサービスにチェックをします。今回はすべてにチェックをつけました。設定ができましたら[OK]ボタンをクリックします。
[Users]タブの画面に戻ると、作成したユーザーがユーザー一覧に表示されています。
FreeSSHdで追加したユーザーはWindowsユーザーに追加されている必要はありませんが、デフォルトの設定ではSFTPのホームディレクトリが"$HOME"であるため、Windowsユーザーとして追加しておく必要があります。
SFTPのホームディレクトリを特定の位置("c:\sftproot"など)に変更すればWindowsユーザーでないアカウント名でも動作します。
FreeSSHdのサーバー側に公開鍵を登録します。
RSAキーペア(公開鍵、秘密鍵)を作成した際に、[Key]セクションに表示されるOpenSSH形式の公開鍵文字列をコピーします。
FreeSSHdの設定画面を表示します。[Authentication]タブをクリックします。下図の画面が表示されます。[Public key folder]に記載されているパスを確認します。下図の設定では"c:\Program Files (x86)\freeSSHd\"ディレクトリに公開鍵が配置される設定になっています。
設定で公開鍵が配置されるディレクトリに移動し、公開鍵のファイルを作成します。ファイル名はユーザー名と同じファイルにします。今回の例では先ほどユーザー追加で登録した"sshtest"ユーザーを利用しますのでファイル名も"sshtest"とします。
メモ帳でsshtestファイルを開きます。先にPuTTYgenで生成されたOpenSSH形式の公開鍵文字列をペーストし保存します。
FreeSSHdを再起動し、公開鍵の再読み込みをします。再起動はタスクトレイのFreeSSHdのアイコンを右クリックします。
ポップアップメニューが表示されるので[Unload]メニューを選択します。
サービスの場合はサービスを停止し、再起動します。
上記の方法でもうまくいかない場合があります。その場合はWindowsを終了し、マシンを再起動します。
クライアント側のソフトウェアを設定します。
WinSCPを起動します。[新しいサイト]を選択し新しい接続設定を作成します。ホスト名、ユーザー名を入力します。[設定]ボタンをクリックし接続の詳細を設定します。
[設定]ボタンをクリックすると[高度なサイトの設定]ダイアログが表示されます。
左側のツリービューから[認証]ノードを選択します。下図の画面が表示されます。
[秘密鍵]のテキストボックスに秘密鍵のファイル(ppk形式)を指定します。先ほどサーバー側に登録した公開鍵の対となる秘密鍵のファイルです。
設定が完了したら接続をしてみます。
接続と認証が実行されます。
無事接続ができ、下図のファイル一覧画面が表示されます。
”server refused public-key despite accepting key!”のメッセージが表示される場合は、FreeSSHd側で公開鍵が読み込まれていない可能性があります。FreeSSHdのUnloadやマシンの再起動を試し、公開鍵の再読み込みを試してください。
また、PuTTYgenで公開鍵をファイル保存したものをそのままサーバーに配置した場合も同様のメッセージが表示されます。FreeSSHdに登録する公開鍵はPuTTYgenで生成されたOpenSSH形式の文字列を用いてください。
PuTTYを起動します。下図のウィンドウが表示されます。
左側のツリービューから[Connection]ノードの[SSH]内の[Auth]ノードを選択します。下図の画面が表示されます。
[Private key file for authentication]のテキストボックスに秘密鍵(ppkファイル)のパスを入力します。
PuTTYで接続します。下図のログインプロンプトが表示されます。ログインするユーザー名を入力します。
ログインに成功しました。
以上で設定は完了です。