SSH多要素認証(MFA)の導入|公開鍵認証だけでは不十分な理由と設定方法を解説

目次
SSH多要素認証(MFA)を導入して不正アクセス対策を強化しよう
SSHのセキュリティ対策として公開鍵認証が広く利用されています。
公開鍵認証は非常に強力な認証方式ですが、秘密鍵が漏洩した場合には不正ログインを許してしまう可能性があります。
そのため近年では、公開鍵認証に加えてワンタイムパスワード(OTP)などを組み合わせる多要素認証(MFA: Multi-Factor Authentication)の導入が推奨されています。
クラウド環境や企業システムではMFAが標準になりつつあり、SSH運用においても重要なセキュリティ対策となっています。
本記事ではSSHにおけるMFAの仕組みや導入方法、実務での活用例について解説します。
MFAとは何か
MFA(Multi-Factor Authentication)は複数の認証要素を組み合わせる認証方式です。
認証要素は大きく3種類あります。
- 知識情報(パスワード)
- 所持情報(スマートフォン・トークン)
- 生体情報(指紋・顔認証)
異なる要素を組み合わせることで安全性を向上させます。
なぜMFAが必要なのか
公開鍵認証は強力ですが万能ではありません。
例えば以下のようなリスクがあります。
- 秘密鍵の漏洩
- 端末の盗難
- マルウェア感染
- バックアップデータ流出
MFAを導入することで、秘密鍵だけではログインできなくなります。
SSH認証の進化
一般的なSSH認証の進化は以下のようになります。
パスワード認証
↓
公開鍵認証
↓
公開鍵認証+MFA
現在は公開鍵認証+MFAが最も推奨される構成です。
SSHで利用されるMFAの種類
代表的な方式です。
- TOTP(Google Authenticator)
- Microsoft Authenticator
- YubiKey
- ハードウェアトークン
- LDAP連携認証
最も一般的なのはTOTP方式です。
TOTPとは
Time-based One-Time Passwordの略です。
一定時間ごとに変化するワンタイムパスワードを利用します。
スマートフォンアプリで生成できます。
認証の流れ
公開鍵認証+MFAの場合の流れです。
- SSH接続開始
- 公開鍵認証
- OTP入力要求
- 認証完了
二段階で認証が行われます。
Google Authenticatorの利用
Linuxで最もよく利用される構成です。
AlmaLinuxの場合です。
# dnf install google-authenticator環境によってパッケージ名が異なる場合があります。
初期設定
対象ユーザーで実行します。
$ google-authenticatorQRコードやシークレットキーが表示されます。
スマートフォンへ登録
Google Authenticatorアプリを起動します。
表示されたQRコードを読み取ります。
以降はワンタイムパスワードが生成されます。
PAM設定
SSH認証へMFAを組み込みます。
設定ファイルです。
/etc/pam.d/sshd
以下を追加します。
auth required pam_google_authenticator.sosshd_configの設定
SSH側でもMFAを有効化します。
ChallengeResponseAuthentication yes
またはOpenSSHの新しい設定では以下です。
KbdInteractiveAuthentication yesAuthenticationMethodsの設定
公開鍵認証とOTPを必須にする例です。
AuthenticationMethods publickey,
keyboard-interactive両方成功しないとログインできません。
設定反映方法
構文確認を行います。
# sshd -t
問題なければ再起動します。
# systemctl restart sshd接続時の動作
ログイン時に以下のような画面になります。
Verification code:スマートフォンに表示されたOTPを入力します。
YubiKeyによるMFA
企業環境ではYubiKeyも利用されます。
USBデバイスを接続して認証を行います。
フィッシング耐性が高いことが特徴です。
クラウド環境でのMFA
AWSやAzureでは管理ポータル側でMFAが推奨されています。
ただしSSHログインとは別管理です。
サーバログインにもMFAを導入するとより安全です。
MFA導入のメリット
- 秘密鍵漏洩対策
- なりすまし防止
- 監査対応
- 内部不正対策
- セキュリティ強化
企業環境では大きな効果があります。
MFA導入のデメリット
- 設定が複雑
- スマートフォンが必要
- 障害時の復旧手順が必要
- 運用負荷が増える
事前に運用ルールを整備しましょう。
バックアップコードの管理
スマートフォン紛失時に備えてバックアップコードを保管します。
安全な場所に保存しましょう。
管理を怠ると自分自身がログインできなくなる可能性があります。
MFAだけで十分か
MFAも万能ではありません。
以下の対策と組み合わせることが重要です。
- 公開鍵認証
- rootログイン禁止
- Fail2ban
- 接続元制限
- ログ監査
多層防御が基本です。
企業環境での導入例
一般的な構成です。
公開鍵認証
+
Google Authenticator
+
Fail2ban
+
IP制限
高い安全性を実現できます。
監査で評価されるポイント
- MFA導入状況
- 認証方式
- 特権アカウント保護
- ログ監査
セキュリティ監査でも重要な項目です。
実務で推奨される構成
- ED25519公開鍵認証
- MFA
- PermitRootLogin no
- PasswordAuthentication no
- Fail2ban
- 接続元IP制限
現在の企業環境では非常に一般的な構成です。
まとめ
SSH多要素認証(MFA)は、公開鍵認証だけでは防げないリスクを補完する強力なセキュリティ対策です。
特に秘密鍵漏洩や端末盗難への対策として有効であり、企業環境やクラウド環境では導入が進んでいます。
公開鍵認証、Fail2ban、接続元制限などと組み合わせることで、より安全なSSH運用を実現できます。
重要なサーバを運用している場合は、MFA導入を積極的に検討してみましょう。





