GNU/Linux >> Linux の 問題 >  >> Ubuntu

privacyIDEAを使用したSSHキー管理


by weinstock @ pixabay

このチュートリアルでは、すべてのサーバーとさまざまなユーザーアカウントのSSHキーを管理する方法を示します。これは、複数のSSHキーがある場合に重要であり、さまざまなSSHキーを持つ多くの異なるユーザーを担当する場合はさらに重要です。誰のキーがどのサーバーにあるか、まだ知っていますか?ユーザーのキーを取り消す必要がある場合はどうしますか?

SSHキーを管理するシステムとしてprivacyIDEAを使用します。もともとprivacyIDEAは、ワンタイムパスワードトークンを管理するためのシステムです。しかし、しばらく前に、新しい概念で拡張され、さまざまな種類の認証アイテム(この場合はSSHキー)の管理に使用できるようになりました。 (私はドイツの会議OpenRheinRuhrでこれについてドイツの話をしました。)

前提条件

あなたはprivacyIDEAシステムをインストールし、ユーザーデータベースに接続していると思います。 Ubuntu LTSに基づくシステムのようなアプライアンスを提供するこのチュートリアルに従うことで、これを簡単に行うことができます。

これから行うことは

です
  1. ユーザーのSSHキーをアップロードします
  2. 設定、どのSSHキーをどのSSHサーバーで使用できるか
  3. 最後にSSHサーバーのSSH構成を調整して、privacyIDEAによって管理されるSSHキーがSSHサーバーでの認証に使用されるようにします。
SSHキーをアップロード

まず、ユーザーのSSHキーをアップロードする必要があります。

注意: SSH公開鍵をアップロードするだけで済みます。秘密鍵は絶対にアップロードしないでください!

SSHキーをアップロードする場合、タイプSSHキーの新しいトークンオブジェクト 創造された。現時点では、管理者のみがユーザーのSSHキーをアップロードできます。管理者はログインして、対応するユーザーを選択する必要があります。

次に、[登録]ボタンをクリックします タイプSSHトークンを選択します SSH公開鍵をコピーして貼り付けます。

トークンの説明には、SSHキーのコメントが自動的に入力されます。

これで、トークンに変更できます ビューを表示すると、タイプ sshkeyの新しく作成されたトークンを確認できます。

SSHキーをSSHサーバーに割り当てます

特定のマシンにトークンを使用するというアイデアは、もともとgithubとオンラインドキュメントで説明されています。

どのトークンがどのマシンのどのアプリケーションで認証できるかを定義する必要があります。 (この方法では、LUKSを使用したオフライン認証も可能です)これは、マシンで実行できます。 ビュー。

privacyIDEA 1.5では、IPアドレスを使用してマシン(SSHサーバー)も定義する必要があります。これはprivacyIDEA2.xで変更されます。

このようにして、sshトークンSSHK00018FD9を使用してサーバー172.16.200.1にSSH経由でログインできるというマシン定義を作成します。オプションキーを空白のままにすると、このSSHトークンを使用してユーザーrootとしてログインできます。別のユーザーとしてログインできるように、値としてユーザー名を指定してオプション「user」を入力することもできます。

SSHサーバーのセットアップ

ここで、SSHサーバーは、privacyIDEAで一元的に定義されたキーを使用してSSH経由でログインできるという事実を知る必要があります。これを実現するには、2つの方法があります。

saltstackを使用して、SSHキーをすべてのSSHサーバーに配布できます。このためには、saltstackをセットアップして実行する必要があります。これにより、少しオーバーヘッドが発生します。これが、このチュートリアルで2番目の選択肢を選択する理由です。

2番目の方法では、SSH構成キー AuthorizedKeysCommand を使用します 。これは/etc / ssh / sshd_configで使用できます 誰かがSSH経由でログインしようとするたびに実行されるコマンドを定義します。このようなコマンドは、ユーザー名をパラメーターとして受け取る必要があり、許可されたSSHキーのリストを返す必要があります。

これを実現するには、コマンド privateidea-authorizedkeysを使用します。 これはprivacyidea管理クライアントに付属しています。したがって、各SSHサーバーにprivacyidea管理クライアントをインストールする必要があります。これは、launchpadの既製のubuntuパッケージ、またはPythonPackageインデックスのpythonパッケージを使用して行うことができます。

実行するメインシステムにprivacyidea管理クライアントをインストールするには:

 pip install privacyideaadm 

privacyidea-承認されたキー ユーザー名以外の追加のパラメーターを取得することは許可されていません。これが、構成ファイル / etc / privateidea / authorizedkeyscommandを作成する必要がある理由です。 これは次のようになります:

[デフォルト]url=https://your.privacyidea.serveradmin =low_rights_adminadminrealm =admin_realmpassword =secret 

このファイルのアクセス権は必ず制限してください。生産的な環境では、この構成ファイルに記載されているトークン管理者が、トークンの削除や作成などの追加のタスクを実行できないようにする必要もあります。

すべてが正しく設定されていれば、実行できるはずです

 privateidea-authorizedkeys root 

...そしてprivacyIDEAにアップロードしたssh公開鍵が表示されます。

最後に、SSH daeminを再構成して、再起動する必要があります。 / etc / ssh / sshd_config 次のようなセクションが必要です:

 AuthorizedKeysCommand / usr / bin / privacyidea-authorizedkeys#また、より低い権限でコマンドを実行する必要があります。#low_priv_userは、/ etc / privacyidea /authorizedkeyscommandへの読み取りアクセス権を持っている必要があります。 認証します! 

SSHデーモンを再起動すると、アップロードされたSSHキーを使用してSSH経由でログインできるようになります。 SSHトークンを削除するか、privacyIDEAでSSHトークンを無効にするとすぐに、ユーザーはこのSSHキーでログインできなくなります。

このようにして、すべてのユーザーのすべてのキーを完全に制御できます。 1つの中央ポイントで1つのSSHキーを無効にすると、ユーザーはSSHサーバーにログインできなくなります。


Ubuntu
  1. SSHキーペアを生成する方法(例付き)

  2. Ssh –公開鍵認証を使用したSshでパスワードプロンプトを引き続き取得しますか?

  3. マルチホップSshトンネルでSsh-copy-idを使用する方法は?

  1. Maasで使用するとJujuで無効なSshキーエラーが発生しますか?

  2. Mac OS で Cron を使用して自作を更新する方法

  3. 暗号化されたホームディレクトリを持つUbuntuシステムへのauthorized_keysを使用したSSH?

  1. PleskでSSHキーを使用する方法

  2. SSH –sshキーの生成と操作

  3. LinuxでSSHを使い始める