Skip to main content

専用サーバー: SSH 二要素認証

このガイドは、以下の製品を使用して作成されました:

(詳細はプロバイダーごとの製品によって異なる場合がありますが、基本的な概念は同じです)

はじめに

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アプリを例にしています:

バックアップコードは必ずコピーしておきましょう。認証アプリを紛失した場合に一度だけ使えます。

アプリにはログイン時に必要なコードが表示されます。こんな感じです:

以下の質問が順に表示されます:

  1. Google Authenticatorの設定を保存しますか?
  2. 30秒ごとに1回のログインのみ許可しますか?
  3. コードの有効時間を延長しますか?
  4. 30秒ごとに3回までのログインを許可しますか?(ブルートフォース攻撃対策)

セキュリティのため、すべて「Yes」で進めることをおすすめします。

設定

次にGoogle Authenticatorを実際に使うための設定を行います。2つのファイルを編集します。

/etc/ssh/sshd_config

/etc/ssh/sshd_configで必要なモジュールを有効化します。以下のコマンドでファイルを開きます:

sudo nano /etc/ssh/sshd_config

テキストエディタが開くので、矢印キーで移動し、自由に編集してください。編集後は「CTRL + X」→「Y」→「Enter」で保存します。

UsePAMChallengeResponseAuthenticationの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を無事設定できました。もし質問やサポートが必要な場合は、いつでもお気軽にサポートチームまでご連絡ください。毎日対応していますよ!🙂