サーバに公開鍵認証を設定する

とりあえず、サーバを用意したらやっとくこと。 公開鍵認証でログインできるようにする。

公開鍵と秘密鍵を作成する

UNIX系ならその場で作れるし、Tera Termなんかでも作れる。 このときのパスフレーズはサーバのIDに対してではなくて、鍵に対するパスフレーズなので設定しなくてもいいし、設定するとよりセキュアになると思う。

公開鍵をサーバへ転送する

先に作った、公開鍵と秘密鍵のうち公開鍵はメールだろうがUSBだろうがFTPだろうがどんな手段でもいいのでサーバの管理者に依頼するなりして送りつける。 一方、秘密鍵は他人には絶対知られてはいけない。これは同じIDでログインするにしても秘密鍵は共有せずに、それぞれが発行管理するようにすべき。

公開鍵からログインユーザのauthorized_keysを作成する

公開鍵を使ってログインするユーザのホームディレクトリに不可視ディレクトリを作成して、サーバへ持ってきたid_rsa.pubの中身をそっくりそのまま移してあげる

# mkdir /home/USER/.ssh
# cat /home/USER/id_rsa.pub >> /home/*USER*/.ssh/authorized_keys

所有者やグループ、アクセス権を設定する

最初のうちにrootなんかで作業をしていると忘れがちなのでやっておく。

# chown -R USER:USER/home/USER/.ssh
# chmod 700 /home/USER/.ssh
# chmod 600 /home/USER/.ssh/authorized_keys

sshd_configを変更する

# cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.org
# vi /etc/ssh/sshd_config

- #RSAAuthentication yes
- #PubkeyAuthentication yes
- #AuthorizedKeysFile     .ssh/authorized_keys
+ RSAAuthentication yes
+ PubkeyAuthentication yes
+ AuthorizedKeysFile     .ssh/authorized_keys

- PasswordAuthentication yes
+ PasswordAuthentication no

最後にsshdを再起動して有効にする

# /etc/rc.d/init.d/sshd restart

この時に、設定にミスがあってログアウトしちゃうとそのあと繋げないというどうしようもない状態に陥ってしまうので、別にターミナルを立ち上げて設定したアカウントで接続をしてみたほうがいいと思う。

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
徳丸 浩
ソフトバンククリエイティブ
売り上げランキング: 1898