SSHの認証を公開鍵認証へ変更
UbuntuでSSHの認証をユーザ名とパスワードによる認証から、秘密鍵と公開鍵を使用した公開鍵認証方式へ変更する方法を説明していきます。
公開鍵認証について
ユーザ名とパスワードによる認証の場合、その情報が漏れてしまうと他人が簡単にログインすることが出来てしまいますが、公開鍵認証の場合は秘密鍵を持っていなければユーザ名とパスワードの情報が漏れてしまった場合でもログインすることが出来ないため、セキュリティレベルが上がります。
作業内容
公開鍵認証を導入するための作業は下記の流れで行っていきます。
- 秘密鍵と公開鍵の作成
- 公開鍵を接続先サーバへ登録
- SSHサーバ設定変更
秘密鍵と公開鍵の作成と公開鍵の登録
SSHクライアントであるRLoginを使用しての秘密鍵と公開鍵の作成と、接続先のSSHサーバへの公開鍵登録方法については、下記ページで説明してありますので参照願います。
RLoginでSSH用認証鍵ペアを作成する方法
RLoginでSSH用の秘密鍵と公開鍵のペアを作成する方法SSH接続用のクライアントであるRloginを使用して、SSH接続用の秘密鍵と公開鍵を作成する方法について説明していきます。作成した秘密鍵と公開鍵はそれぞれ以下の場所に保存して使用す...
SSHサーバ設定変更
接続先のSSHサーバで/etc/ssh/sshd_configを編集して、パスワード認証を行わないように設定を変更します。
$ sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_$(date +%Y%m%d-%H%M%S) $ sudo vi /etc/ssh/sshd_config
パスワード認証を許可するかどうかは「PasswordAuthentication」という項目で設定されていますので、この設定をyesからnoに変更してパスワード認証を行わないようにします。
Ubuntu Server 20.04の場合、編集箇所は下記の2箇所でした。
# To disable tunneled clear text passwords, change to no here! PasswordAuthentication yes # 変更前 PasswordAuthentication no # 変更後
# Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server PasswordAuthentication yes # 変更前 PasswordAuthentication no # 変更後
設定が終わったらsshdを再起動して設定を反映させます。
$ sudo systemctl restart sshd
設定が反映されているかの確認は下記のコマンドで確認することができます。
$ sudo sshd -T | grep passwordauthentication passwordauthentication no
動作確認
動作確認として下記の実際にSSHで接続を行い動作検証を行ってください。
- パスワード認証でログインできないこと
- 作成した秘密鍵を使ってログインできること
動作に問題がなければ作業は完了となります!
コメント