公開鍵認証による接続方法(PuTTYの場合)

ALL
スポンサーリンク

Linuxのsshコマンドや Tera Term 、PuTTYで sshで接続する場合、パスワード認証よりも安全な公開鍵認証という接続方法があります。
前前回は Linuxのsshコマンドでの接続方法を、前回は Tera Termでの公開鍵認証での接続方法について説明しました。
今回は PuTTYでの公開鍵認証での接続方法について説明します。

サーバの設定

前前回(公開鍵認証による接続方法(sshコマンドの場合) )の記事の クライアントがLinuxの場合サーバの設定 を参照して下さい。

クライアントがWindowsの PuTTY の場合

鍵を生成する

PuTTYインストール先にある puttygen を起動します。

「Genarate」ボタンを押します。
画像

赤枠の箇所でマウスを動かします。マウスを動かすに従って、画面上部の緑色のバーが伸びていきます。
画像

緑色のバーが右端まで到達すると、下の画面になります。
「Key passphrase」に、パスフレーズを入力します。何も入力しない場合は、パスフレーズは空になります。
同じパスフレーズを確認の為に「Confirm Passphrase」にも入力します。何も入力しない場合は、パスフレーズは空になります。
入力するパスフレーズは、ここで作成する秘密鍵に設定するためのパスフレーズです。
後ほどクライアントから公開鍵認証で接続する際に、クライアントでこのパスフレーズを入力する必要があります。
ログインに使用するパスワードでは無いことに注意して下さい。
画像

最後に「Save public key」を押して、ファイル名 id_rsa.pub で保存します。
同様に「Save private key」を押して、ファイル名 id_rsa.ppk で保存します。
この時、パスフレーズを入力していなかった場合は次の画面が出るので、「はい(Y)」を押してください。
画像

作成した公開鍵(id_rsa.pub)を USBメモリや、ここ で紹介した WinSCP 等でサーバにコピーします。

公開鍵をサーバに設定する

サーバにログイン後、~/.ssh ディレクトリがあるか確認し、無い場合は作成します。
この時、.ssh ディレクトリの書き込み権限は所有者だけにします。
所有者以外に書き込み権限があると、後ほどクライアントから公開鍵認証で接続した際に、接続が失敗します。
次のコマンドで、.ssh の作成と、ディレクトリの書き込み権限を所有者だけにします。

mkdir ~/.ssh
chmod 700 ~/.ssh

クライアントからコピーしてきた公開鍵(id_rsa.pub)を ~/.ssh/ にコピーします。

次にauthorized_keysというファイルに公開鍵を書き込みます。
ssh-keygen の -iオプションで、puttygen で作成した公開鍵を OpenSSH 互換の公開鍵に変換します。

ssh-keygen -i -f id_rsa.pub >> authorized_keys 
chmod 600 authorized_keys

もう id_rsa.pub は不要なので削除します。

rm id_rsa.pub

以上でサーバの設定は完了です。

PuTTY で接続する

PuTTYを起動し、接続先ホストを指定します。

そのままで、画面左のカテゴリから 接続 -> SSH -> 認証 を選択します。
画面右側の「認証のためのプライベートキーファイル(K)」で、id_rsa.ppk を指定します。
画像

「開く(O)」ボタンを押します。
ログイン画面になるので、ユーザ名を入力します。
パスフレーズの入力を求められた場合は、公開鍵、秘密鍵の生成時に設定したパスフレーズを入力します。
画像

これで公開鍵認証で接続できます。

参考

SSH-KEYGEN (1)
公開鍵認証によるSSH接続 – PuTTYの使い方
PuTTY で鍵交換方式による SSH 接続
SSH公開鍵暗号化方式-サーバ側(接続受け側)の設定 | Tera Term(テラターム)の便利な使い方

コメント