非対話型 SSH 接続で 2FA を設定するにはどうすればよいですか?

非対話型 SSH 接続で 2FA を設定するにはどうすればよいですか?

2 要素認証を使用して、SSH サーバー (Ubuntu) へのログインにセキュリティ レベルを追加したいと考えています。ユーザーが SSH サーバーに接続する方法の 1 つの特徴は、非対話型で接続する場合があるということです。SSH サーバーは、ユーザーの MySQL クライアントで、データベースにアクセスするための要塞/プロキシとして使用されるよう構成されています。そのため、ユーザーがターミナルに何も入力する必要がない 2FA 設定を探しています。

理論的には有望と思われる既存のソリューションの 1 つは、ユーザーが接続を検証できるようにする Google の電話プロンプトです。すべての SSH ユーザーに電話番号が関連付けられ、この電話番号は接続ごとに検証を求めるプロンプトを受け取ります。 ここに画像の説明を入力してください

このアイデアの明らかな欠点は、電話アプリの開発が必要になりそうで、非常に複雑で高価になるということです。ユーザーが非対話型の SSH ログインを検証できるようにするために使用できる他のテクニックはありますか?

答え1

SSH-CA を使用すると、数時間のみ有効な一時的な OpenSSH ユーザー証明書を発行できます。ユーザーは、任意の MFA ソリューションで認証して証明書を要求する必要があります。SSH 証明書と秘密鍵は SSH キー エージェントに読み込まれ、ユーザー証明書の有効期限が切れるまで使用できます。

世の中には様々なSSH-CA実装がありますが、エカ私もその一人です。人によって感じ方は異なります。

関連情報