SSH Key認証
いつも忘れてしまうので、メモです。
SSHKey認証する方法
まずクライアントマシンで秘密鍵を作ります。今回はrsaで作成しました。
ssh-keygenを実行してキーを作成します。パスフレーズが聞かれるので同じパスワードを2回入力します。
$ssh-keygen -t rsa Generating public/private dsa key pair. Enter file in which to save the key (/Users/takahashi/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
次に、サーバーに公開鍵を転送します。間違っても平文で送らないようにそして、authorized_keysに転送した公開鍵を登録します。
$scp .ssh/id_rsa.pub username@servername:. $ssh user@hostname "cat id_rsa.pub >> .ssh/authorized_keys"
これでSSHKey認証ができるようになりましたが、このままだと毎回パスワードを聞かれます。ssh-agentを使うとキーの暗号化が解除され、キャッシュされます。するとパスフレーズなしに接続できるようになります。
ssh-agentを起動します。
$eval `ssh-agent`
ssh-add で秘密鍵を指定して実行します。
パスワードが効かれるので、ssh-keygen時に指定したパスワードを入力します。
$ssh-add ~/.ssh/id_pub Enter passphrase for /Users/mistat/.ssh/id_rsa: Identity added: /Users/mistat/.ssh/id_rsa (/Users/mistat/.ssh/id_rsa)
これで秘密鍵の暗号化が解除され、パスなしで接続できるようになります。