サーバをインターネットに接続し、適切にポート開放をすれば、当然ながら全世界からのアクセスが可能となる。
その際、SSH接続をパスワードによる認証にしていると、ブルートフォースアタック(総当り攻撃)で侵入されてしまう恐れがある。
また、暗号化されているとはいえ、入力したパスワードがインターネット上を流れるのはセキュリティ的にもよろしくない。
そこで、公開鍵暗号方式の認証を設定することにした。
公開鍵暗号方式とは、素因数分解の複雑さを利用したもので、暗号化と復号化を違う鍵(パスフレーズやファイル)で行えるものである。
SSH2では、RSA暗号の2048ビットのものを使うことができる。
(もっと強度を上げられるかについては調べていない。)
流れとしては、
- サーバ側で、ssh-keygen コマンドで、公開鍵と秘密鍵の組を作成。別にパスワードを設定することもできる。
- サーバに接続したいPC(クライアント)に鍵を転送。
- パスワードによる認証でSSHログインできないようにサーバ側の設定を変更。