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(テラターム)の便利な使い方
コメント