PuTTYのたちあげがめんどくさくなったからPageantとか使ってみた

自宅でプログラムを書く場合、たいていUbuntuのサーバで行います。このとき、サーバにアクセスするためにPuTTYを使います。日によっては、PuTTYの立ち上げからログインまでの作業を何度も行うため、PuTTYの画面操作やパスワードの入力は非常にめんどうです。
そこで、今夜は公開キー認証とPageantを使ってこの作業を簡単にしました。

公開キーでログインできるようにする

公開キーをサーバに送る(pscpコマンド)

以前に公開キーと秘密キーの組み合わせは作成してあるので、公開キーの配置から始めました。
公開キーはWindowsにあるので、これをサーバにpscpコマンドでサーバに送りました。コマンドプロンプトで以下を実行して、公開キーid_rsa.pubを.ssh/ディレクトリに配置しました。

pscp id_rsa.pub ユーザ名@ホスト名:.ssh/
参考
PuTTYユーザマニュアルの日本語訳 - 5.2 PSCPの使い方
公開キーをOpen_SSH用のものに変える(ssh-keygenコマンド)

コピーしたid_rsa.pubのままではサーバが認識してくれないそうなので、Open_SSH用のファイルに変換しました。PuTTYでサーバにログイン後、以下を実行しました。

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

公開キーは他人に書き込まれてはまずいので、自分以外に「書き込み権限を持たせない」ことを意識しました。もっとも、今はうちのサーバに他人はいないのですが意識は重要ですね。

参考
PuTTY で鍵交換方式による SSH 接続 - 3. SSHサーバへ公開鍵の登録
公開キーでのログインができるよ

ここまでの設定でPuTTYで公開キーを使ったログインができるようになりました。
毎回パスワードを入力する必要がなくなりましたが、代わりに毎回パスフレーズの入力が必要になりました。

Pageantパスフレーズの入力を一回だけにする(pageantコマンド)

Pageantに秘密キーとパスフレーズを登録しておくと、何度PuTTYでログインしてもパスフレーズの入力が不要になります。そこで、Windowsのスタートアップに以下を実行するショートカットを登録しました。

C:\Program Files\PuTTYjp\pageant.exe 秘密キーのパス

Windowsにログイン時にpageant.exeが起動し、パスフレーズを聞かれるようになりました。ここでパスフレーズを入力しておけば、以後のPuTTYでのログインでパスフレーズは入力不要です。

参考
PuTTY User Manual - 9.3 The Pageant command line

ショートカット一発でサーバにログインできるようにする(puttyjpコマンド)

Windowsのクイック起動ツールバーに以下のショートカットを登録したので、ワンクリックでいつでもサーバにログインできます。

C:\Program Files\PuTTYjp\puttyjp.exe -load セッション名 -l ユーザ名

このショートカットをサーバの数だけ用意すれば、どこでもいつでも入り放題ですね!

参考
PuTTY User Manual - 3.8 The PuTTY command line

うまくいったよ、ショートカット一発ログイン!

だいぶ便利になりました!ショートカットをクリックするだけでいつでもログインできます。これで、ログ見るのめんどくさいな〜とかいって作業をさぼることがなくなります。

ちょっと気になるpageantの危険

後で調べる。

参考
pageant.exe の仕組みと危険性