ji0vwl.netをやっとパスワード認証から公開鍵認証に変更しました。まあ、こんな個人のサーバーを乗っ取っても何も出ませんが一応セキュリティ対策のお勉強として。
パソコン(クライアント)側でキーペアを生成して、公開鍵をサーバーにいれるのがセキュリティ上安全かと思いますが、私の場合は、個人用サーバーなのでユーザは1人、クライアントパソコンは複数台という状況なので、サーバーで生成して、秘密鍵を各パソコンにいれる方式をとりました。サーバーからの秘密鍵のダウンロードはSFTP(SSH)で暗号化されているので問題はないと思います。
1. SSH公開鍵認証用のキーペアを作成
公開鍵認証ログインをしたいユーザでサーバーにログインして、キーペアを生成します。キーペア生成はroot権限は必要ありません。
$ ssh-keygen -t rsa
パスフレーズ入力を促されますので、適当なパスワードを設定します。パスフレーズ無しでも作れます。
~/.ssh/ディレクトリ内に、id_rsa.pubという公開鍵(このサーバーに入れておく)と、id_rsaという秘密鍵(各々のパソコンに入れる)が生成されました。
2. 公開鍵id_rsa.pubを公開鍵認証できるように名前変更、アクセス権を変更する
$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys$ chmod 600 ~/.ssh/authorized_keys
3. 公開鍵認証ログイン設定
sshd_configを編集しますが、sudoもしくは、rootユーザーに切り替える必要があります。
$ su –# vim /etc/ssh/sshd_config
以下の2項目のコメントアウトを外します。
#PubkeyAuthentication yes↓PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys↓AuthorizedKeysFile .ssh/authorized_keys
:WQで保存して、SSHを再起動します。
# service sshd restart
これで公開鍵認証が許可されました。
ただしパスワード認証もできてしまうので、あとで、公開鍵認証ができることを確認してからパスワード認証を不許可にしましょう。
4. 秘密鍵をパソコン(クライアント)にダウンロード
RloginのSFTPで、秘密鍵id_rsaをパソコンにダウンロードします。私はRloginフォルダにそのまま入れました。
5. クライアントソフト(RloginやTera Termなど)で、公開鍵認証ログイン設定
以下、Rloginの設定です。
・Rloginを起動
・公開鍵認証をしたいサーバーを選択して「編集(E)」をクリック
・SSH Identity Keyの「参照(K)」をクリック
・id_rsaを選択、「OK」
・パスワードを、ユーザパスワードからid_rsaのパスフレーズに変更
6. ログインする
ログインできたら、公開鍵認証ログインの成功です。
7. パスワードログインを禁止する
$ su –# vim /etc/ssh/sshd_config
PasswordAuthentication yes↓PasswordAuthentication no
:WQで保存し、最後にSSHを再起動して設定完了です。
# service sshd restart
これで、最低限のセキュリティ対応は完了です。
・SSHポート番号変更(iptables含む)
・rootログイン禁止
・パスワードログイン禁止(公開鍵認証)