カテゴリ:

通常リモートからの接続にはパスワード認証を利用していますが、実はあまり望ましい方法とは言えません。なぜならパスワードが分かってしまえば、誰でもログインできてしまうから…。

ということで公開鍵を使ったログインにするとより安全です。方法はまずペアとなる公開鍵と秘密鍵を作ります。次に公開鍵をサーバに登録、これにより一致する秘密鍵でのみログインできるようになります。

まずは鍵の作成ですが、詳細はPuTTYgenの利用をご覧下さい。指定するパスフレーズはパスワードと違いスペースも利用できるのがポイントです。

できたら公開鍵を登録します。まずは専用のディレクトリを作成しますが、以降利用するユーザで設定を行います。

$ mkdir ~/.ssh

次にそのディレクトリ内に作った公開鍵を貼り付けます。このファイルのパーミッションは644か600でないとうまく動きません。

$ vi ~/.ssh/authorized_keys

では鍵を使ってログインしてみましょう。詳細は鍵を使ったログインをご覧下さい。

するとログイン画面が変わります。

今まで
Using username "nakamura".
nakamura@192.168.0.18's password:

鍵を使った場合
Using username "nakamura".
Authenticating with public key "rsa-key-20060109"
Passphrase for key "rsa-key-20060109":

そして設定したパスフレーズでログインできればOKです。ログはこのようになります。

# tail /var/log/messages
Jan  9 07:53:25 manet sshd[15709]: Accepted password for nakamura from ::ffff:192.168.0.212 port 1061 ssh2
 ←通常のログイン
Jan  9 08:00:56 manet sshd[15813]: Accepted publickey for nakamura from ::ffff:192.168.0.212 port 1073 ssh2 ←鍵を使ったログイン

問題なく動くようになったら通常のパスワードログインをできないようにしましょう。ただしこの設定を行うと秘密鍵がないとまったくログインできなくなるので慣れてから行ったほうががいいかもしれません。

# vi /etc/ssh/sshd_config
PasswordAuthentication no
 ←yesをnoにする

設定変更後sshdを再起動します。

# service sshd reload