公開鍵認証によるSSH接続 - PuTTYの使い方
当ページのリンクには広告が含まれています。
Windows対応のSSHクライアントPuTTYを利用した、パスワード認証によるSSH接続について解説します。
公開鍵認証方式によるSSH接続には、公開鍵と秘密鍵が必要です。これら鍵ペア(公開鍵と秘密鍵)は、ssh-keygenコマンドやTera Termなどいろいろな方法で作成することができます。
ここでは、PuTTYのインストーラに付属されているputtygen.exeを使って鍵ペアを作成し、それらの鍵による公開鍵認証で以下のSSHサーバーにSSH接続するまでを解説します。
・SSHサーバー情報 IPアドレス:aaa.bbb.ccc.ddd SSHのポート番号:22 ユーザー:karuma
公開鍵と秘密鍵の生成
公開鍵と秘密鍵の生成するために、puttygen.exeを起動します。PuTTYのインストールフォルダを初期設定から変更していない場合、puttygen.exeはPuTTYフォルダ(c:¥Program Files (x86)¥PuTTY)の直下にあります。
①パラメータ(Parameters)の設定
「SSH-2 RSA」が選択されていることを確認し、鍵のビット長(Number of bits in a generated key)に「2048」と入力します。
②「Generate」をクリックし、鍵の生成を開始します。
鍵を生成するために、マウスを親の敵のように激しくランダムに動かします(Please generate some randomeness by moving the mouse over the blank area)。
・パスフレーズ
パスフレーズ(Key passphrase)とパスフレーズの確認(Confirtm passphrase)を入力します。
※パスフレーズは空でも構いません。
・公開鍵の保存
「Save public key」をクリックし、公開鍵を任意のフォルダに保存します。
ここでは、PuTTYフォルダ(c:¥Program Files (x86)¥PuTTY)に「id_rsa.pub」として保存します。
・秘密鍵の保存
「Save private key」をクリックし、秘密鍵を任意のフォルダに保存します。
ここでは、PuTTYフォルダ(c:¥Program Files (x86)¥PuTTY)に「id_rsa.ppk」として保存します。
これで鍵ペアの生成が完了しました。
公開鍵の設置
PuTTYのインストーラに付属されているpscp.exeを使って、作成した公開鍵をSSHサーバーに設置します。
コマンドプロンプトを起動し、cdコマンドでPuTTYフォルダ(c:¥Program Files (x86)¥PuTTY)に移動します。
コマンドプロンプトで以下のコマンドを実行し、公開鍵(id_rsa.pub)をSSHサーバーのホームディレクトリ(/home/karuma/)にscpします。
C:\Program Files (x86)\PuTTY>pscp.exe id_rsa.pub karuma@aaa.bbb.ccc.ddd:. karuma@aaa.bbb.ccc.ddd's password: id_rsa.pub | 0 kB | 0.5 kB/s | ETA: 00:00:00 | 100%
コマンドを実行するとパスワード聞かれるので入力します。パスワード認証が成功するとファイルの転送が開始します。
次に、転送した公開鍵(~/id_rsa.pub)をssh-keygenコマンドでOpenSSHで使用できるように変換し、ディレクトリ(~/.ssh/authorized_keys)に設置します。PuTTYを起動し、パスワード認証でサーバーへSSH接続します。SSH接続が成功したら、以下のコマンドを実行します。
$ pwd /home/karuma $ ls id_rsa.pub $ mkdir .ssh $ chmod 700 .ssh $ ssh-keygen -i -f id_rsa.pub >> .ssh/authorized_keys $ exit
これで、公開鍵の設置は完了です。次はいよいよ公開鍵認証でSSH接続です。
公開鍵認証によるSSH接続
PuTTYを起動します。
Host NameとポートにSSHサーバーのIPアドレスとポート番号を入力し、左サイドバーの「SSH」をクリックします。
左サイドバーの「SSH」→「Auth」をクリックします。次に「Browse」をクリックし、秘密鍵(id_rsa.ppk)を選択します。
これで準備完了です。「Open」をクリックします。
ユーザー名を入力するとパスフレーズを聞かれるので、先ほど作成したパスフレーズを入力します。
以上、「PuTTYを利用した、公開鍵認証によるSSH接続」でしたー。