VPS: SSHの二要素認証(2FA)
はじめに
GoogleのSSH二要素認証(2FA)サービス、Google Authenticator SSHは、SSH(Secure Shell)アクセスのセキュリティを強化するために、認証の第二層を追加します。SSHはすでにリモートサーバーへの暗号化接続を確立する安全な方法ですが、2FAを導入することで、パスワードに加えてGoogle Authenticatorが生成するワンタイム認証コードの入力も必要になり、セキュリティレベルがさらにアップします。このガイドでは、LinuxサーバーにGoogle Authenticator SSHサービスをインストールし設定する手順を解説します。
インストール
まずはLinux VPSにGoogle Authenticatorをインストールします。以下のコマンドを実行してください:
sudo apt install libpam-google-authenticator
インストール確認のため「Y」を入力してEnterを押すと、Google Authenticatorがインストールされます!
google-authenticatorと入力してGoogle Authenticatorを起動します。QRコードが表示されるのに十分なウィンドウサイズがあるか確認してください。もし小さい場合は「CTRL+C」で中断し、再度実行してください。
実行確認が求められたら「Y」を入力して承認します。QRコードが表示されるので、スマホの認証アプリでスキャンしてください。ここではGoogle Authenticatorを例に使います:
バックアップコードは必ずコピーしておきましょう。認証アプリを紛失した場合に一度だけ使えます。
アプリにはログイン時に必要なコードが表示されます。こんな感じです:
次に以下の質問が表示されます:
- Google Authenticatorの設定を保存しますか?
- 30秒ごとに1回のログインに制限しますか?
- コードの有効時間を延長しますか?
- 30秒ごとに3回までのログインに制限しますか?(ブルートフォース対策)
セキュリティのため、すべて「Yes」で答えることをおすすめします。
設定
次にGoogle Authenticatorを有効にするための設定を行います。2つのファイルを編集します。
/etc/ssh/sshd_config
/etc/ssh/sshd_configで必要なモジュールを有効化します。以下のコマンドでファイルを開きます:
sudo nano /etc/ssh/sshd_config
テキストエディタが開くので、矢印キーで移動し、自由に編集してください。編集後は「CTRL + X」→「Y」→「Enter」で保存します。
UsePAMとChallengeResponseAuthenticationの2行がyesになっていることを確認してください。こんな感じです:
保存したら、以下のコマンドでSSHを再起動します:
sudo systemctl restart ssh
/etc/pam.d/sshd
次に/etc/pam.d/sshdにGoogle Authenticatorを追加します。以下のコマンドでファイルを開きます:
sudo nano /etc/pam.d/sshd
ファイルの最後までスクロールし、以下の行を追加してください:
auth required pam_google_authenticator.so
保存は「CTRL + X」→「Y」→「Enter」で完了です。
アクセスのテスト
いよいよ2FAでの初ログインです。上記の設定を終えたら、SSH接続を再起動してください。
通常通りパスワードを入力した後、認証コードの入力を求められます。スマホの認証アプリに表示されている最新の2FAコードを入力しましょう。
これでログイン完了です!
まとめ
おめでとうございます!SSHの2FAを無事に有効化・設定できました。もし何か質問やトラブルがあれば、いつでもサポートチームに連絡してくださいね。毎日サポート対応しています!