koba::blog

小林聡: プログラマです

SSH接続に公開鍵を使う

さくらVPSsshでログインするのに長らくパスワード認証を使っていたのですが、scpするときなどに不便なので、公開鍵認証に切り替えました。

まずクライアント側でRSA鍵を生成します。

$ ssh-keygen

生成したRSA公開鍵を接続先に持っていきます。

$ scp ~/.ssh/id_rsa.pub kobalab.net:

接続先で公開鍵を追加します。

$ mkdir ~/.ssh
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod -R go-wrx ~/.ssh
$ rm id_rsa.pub

ssh接続すると、OS Xのダイアログが表示されパスフレーズの入力を求められるので、RSA鍵生成時に指定したパスフレーズを入力します。キーチェーンに登録しておけば、以降パスフレーズの入力は不要になります。

パスワード認証を無効にする場合は、/etc/ssh/sshd_config の PasswordAuthentication に no を設定し、sshd を再起動します*1

PasswordAuthentication no
$ sudo /etc/init.d/sshd restart

*1:何らかの理由でRSA鍵をなくした場合は、VPSコントロールパネルからログインすればよいです