Tera TermでPagent(+PuTTYgen)を使う
部室にあるサーバーのSSH認証方式を、公開鍵認証に変更しました。
これで都度のパスワード入力から開放されます。( ´∀`)エヘヘ セキュリティ強化もあり万々歳ですね。
メインとして使っているSSHクライアントはTeraTermなので、今回はこれにPagentを連携させてやります。
Windows 7で作業しました。
Login As... [tanaka@centos5.8 ~]$ echo "文字による表現が下手なので今回は絵付きで解説"
鍵生成ダイアログの表示
まずは、公開鍵と秘密鍵をTeraTermで作成します。
TeraTermを起動したら、「設定」から「SSH鍵生成(N)」をクリックして、鍵生成のダイアログを開いて下さい。
鍵生成の準備
ダイアログが表示されたら、ダイアログの右上にある「生成(G)」というキャプションのボタンを押します。
ダイアログ下部にある「公開鍵の保存(C)」と「秘密鍵の保存(P)」のボタンが有効になったことを確認して下さい。
公開鍵の生成と保存
ボタンが有効になったら「公開鍵の保存(C)」のボタンを、鍵のパスフレーズを未入力のまま押します。
id_rsa.pubというファイル名で保存して下さい。(・ω・´)
(今回はC:\Users\Owner\SSH鍵というディレクトリを作成して保存しました)
秘密鍵の生成と保存
最後に秘密鍵を作成します。
先ほど押したボタンの右にある「秘密鍵の保存(P)」のボタンを、今度は鍵のパスフレーズを入力してから押します。
ここで入力したパスワードを忘れないで下さい。
このパスワードは、いつも使っているアカウントのログインパスワードとは別でOKです。
(今回はC:\Users\Owner\SSH鍵というディレクトリを作成して保存しました)
秘密鍵の変換 (PuTTYgen)
Pagent読み込めるようにするために、先ほど作成した秘密鍵をPuTTYgenで変換します。
PuTTYgenを起動して秘密鍵を読み込んで下さい。
秘密鍵を読み込むと、作成した秘密鍵のパスワードを入力するダイアログが表示されます。
作成時のパスワードを入力してOK→OK。
最後に変換された秘密鍵を保存して終了です。
保存する鍵の名前はid_rsa.ppkにしました。
公開鍵の転送 (サーバーへの送信)
先ほど作成した公開鍵を、TeraTermを使って対象のサーバーへ送信します!
対象のサーバーに公開鍵認証をさせたいユーザーでログインしてください。 (`・ω・´)
サーバーにログインをしたら、TeraTermのメニューバー項目「ファイル」にある「SSH SCP」をクリックします。
すると、ファイルを送信できるダイアログが出てくるので、ダイアログ上側に表示されているファイル選択(参照)ボタンの「...」を押して、今回の公開鍵を選択。
選択したら、右にある「send」ボタンを押せばOKです。
公開鍵の設置
クライアントで作成した公開鍵をサーバーに設置します。
.sshというディレクトリを、ユーザーのホームディレクトリ直下にパーミッション700で作成します。
(既に.sshディレクトリが存在する場合はこの作業は不要です。)
そして、公開鍵のデータをauthorized_keysというファイルに追記して下さい。
authorized_keysファイルのパーミッションは600です。
ファイルやディレクトリのパーミッションに気をつけて下さい。
今回、わたしはtanakaユーザーで作業しました。
① .sshディレクトリをユーザーのホームディレクトリにパーミッション700で作成 (ディレクトリが存在しない場合) [tanaka@centos5.8 ~]$ mkdir -m 700 .ssh ② さきほどクライアントPCからTeraTermで送信した公開鍵を.sshディレクトリに移動 [tanaka@centos5.8 ~]$ mv id_rsa.pub ./.ssh/ ③ 公開鍵をauthorized_keysに追記 (ファイルが存在しない場合は作られます) [tanaka@centos5.8 ~]$ cat ./.ssh/id_rsa.pub | tee -a ./.ssh/authorized_keys ssh-rsa AAXXXXXXXyc2EAAAABIwAAAQEAotQXRRRRRbGPEoKkzigYxaX7jBYE2qvZEAAEEEEEMyLV5NvpHL+qcPHftBP3j1emHHHHH EiCCCC3NmTViP2wFEEEEEh95BIK+BAfcTmiDMzhX1ouSNHg3e0WUvTJ/TxAJn6pHzHLVY6NtmBknskpSqFL1vUVi5/7uqa2dakphrwe YKKwVqFDdj/HIE2pIbc3haZG9sBtnfYKn8X0d8qq1J28DuGFUWbxMjgVNSoUvfyRgzIzhzt4duEUof+cbQDt3u+geUU0EAbOoAhbziQ Sl0Q== clientname ④ authorized_keysのパーミッションが600でない場合は600に変更 [tanaka@centos5.8 ~]$ chmod 600 ./.ssh/authorized_keys ⑤ 不要になった公開鍵を削除 [tanaka@centos5.8 ~]$ rm -i ./.ssh/id_rsa.pub rm: remove 通常ファイル `./.ssh/id_rsa.pub'? y
sshd_configの編集
sshd_configに設定された次の3つの項目(値)を確認して下さい。
noになっていたり、未指定だった場合は設定してあげて下さい。
[tanaka@centos5.8 ~]$ sudo vi /etc/ssh/sshd_config ~中略~ RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
パスワード認証を禁止する場合は次のように設定!
PasswordAuthentication no
sshd_configの編集が終わったら、sshdを再起動です。
サーバー側の準備が出来たらログアウト!
いよいよパスワード無しでの接続。
クライアント側でPagentを起動します。(起動するとタスクトレイに入っていると思います。)
起動したら鍵の読み込みボタンを押してダイアログを開きます。
先ほどPuTTyGenで変換した秘密鍵(ppkファイル)を指定して下さい。
(この時も秘密鍵作成時のパスワードを入力する必要があります)
セットが完了したら、あとはログインを実行してみるだけ。c(・ω・`c⌒っ
TeraTermを起動したらPagentを使うというラジオボタンにチェックを入れて、OKボタンを押すだけです。
Last login: Thu Dec 31 23:59:59 2013 from 192.168.1.105
[tanaka@centos5.8 ~]$
無事にログイン出来ました!!!ヽ(´▽`*)ノ
今回お世話になったサイト
- TeraTerm Home Pageさん(現時点での最新版は4.8でした)
- PuTTY ごった煮版さん(現時点での最新版はPuTTY 0.60 ごった煮版 2007年8月6日版でした)
- sshクライアントの使い方と設定さん