認証鍵ペア交換によるパスワードの省略
- ホスト鍵ペアだけでもパスワードによる運用が可能だが、scp や sftp でいちいちパスワードを入れるのが面倒になる。このような場合は、個人の鍵ペアを作成して、ホスト間に配置しておくことで、最初に個人鍵に対するパスフレーズの入力だけでパスワードが不要になる。
- 鍵ペアは1つで良い。ssh-keygen -t rsa すると、~/.ssh/id_rsa と ~/.ssh/id_rsa.pub の鍵ペアができる。公開鍵 (id_rsa.pub)を、相手側のサーバーに認証済みの鍵として置いておく。
$ ssh-keygen -t rsa
$ chmod 755 ~/.ssh
$ scp ~/.ssh/id_rsa.pub remote:.ssh/authorized_keys2
- authorized_keys2 が複数あるときは、append します。
- これだけで ssh remote とすれば、個人鍵のパスフレーズを入力してから remote がその鍵を認証する動作になる。しかし、これでは、ホスト鍵だけでパスワードを使った運用と変わりない。個人鍵のパスフレーズを入力した状態(認証済みの状態)をログイン時にメモリに保持しておくことで、パスフレーズの入力を省略する。
- メモリに鍵を認証済みの鍵を保持するのが ssh-agent で、そこへ鍵を追加するのが ssh-add である。
- X window 無しで使うときは、exec /usr/bin/ssh-agent $SHELL とすると、ssh-agent が background で動作する。X window を使うときは、~/.Xclients の exec の次に割り込ませれば良い。
~/.Xclients:
if [ -e "$HOME/.Xclients-$HOSTNAME$DISPLAY" ]; then
exec /usr/bin/ssh-agent $HOME/.Xclients-$HOSTNAME$DISPLAY
else
exec /usr/bin/ssh-agent $HOME/.Xclients-default
fi
開発Tips
|