技術的雑談-PuTTY-keygenでパスワード無しログイン
環境
- クライアント:WindowsXPsp2 + PuTTY0.53(日本語パッチ版)
- サーバ:とりあえずRedHat Linux Enterprise Edition(多分OpenSSH2が動いているサーバなら何でもいい)
やりたいこと
PuTTYでいつもサーバにログインしているが、ユーザ名・パスワードを打ち込むのがめんどくさい。
ついでに、ショルダークラックされたらイヤ。
対処
SSH公開鍵認証使いましょう。
PuTTY付属(?)のputtygen.exeでSSHの公開鍵を作れます。
大体puttygen.exeでGoogleさんに聞けばやり方は書いてあると思いますが、陥りやすい罠をさらしておきます。
公開鍵の置き方
puttygen.exeで鍵ペアを作ると、非標準な形式でキーファイルが作られます。
~/.ssh/authorized_keysに書き込む公開鍵の形式は1行ですが、puttygen.exeの公開鍵は複数行に改行されています。
書き込む際は行の先頭に「ssh-ras」と半角スペースを1つあけて、puttygen.exeで作った公開鍵ファイルの内容を1行にまとめて書き込みます。
つまり
---- BEGIN SSH2 PUBLIC KEY ---- Comment: "hogehoge" xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz qqqqqq== ---- END SSH2 PUBLIC KEY ----
と、なっているファイルを、
ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzqqqqqq== hogehoge
と、変換して書き込めばOK。
ちなみに、~/.sshのパーミッションは700にしておかないとsshdに無視されます。
PuTTY側の設定
New Sessionのダイアログの設定で、
- Connection→Dataの「Auto-Login username」にUNIXユーザ名を入力
- Connection→SSHのプロトコルを「2 Only」にしておく(少なくともSSH2が選ばれるように)
- Connection→SSH→Authの「private key file for authentication」の欄にputtygen.exeで作った秘密鍵ファイルを設定。
これをやらないと自動ログインにならない。
特にユーザ名の設定を忘れると数時間頭をひねることになる。
pagent.exe
これもPuTTY付属。
秘密鍵を食わせておくと、勝手にPuTTY上の認証をしてくれる。
タスクトレイに常駐します。
秘密鍵(.ppk)のダブルクリックでも起動します。
履歴
2005/10/18 -- 初版
技術的雑談へ戻る