web-dev-qa-db-ja.com

KerberosでのSSHキーの使用

したがって、私たちの会社でこの1週間、髪を抜く原因となっている問題があります。

チーム間で毎日SSHで迅速にSSHに接続する必要がある何百ものサーバーボックス(CentOS6/7の混合、必要な場合)があります。接続情報やタブ付き接続を保存して整理する機能は必須なので、誰もがmRemoteNGまたはSuperPuttyを使用しています。現在、全員が単一のSSHキーを共有してすべてのボックスにログインしています。明らかに私たちの現在の習慣はひどい考えなので、私たちがしたいことは、各ユーザーに個別のアカウントとボックス全体で使用されるキーを与えることです。

見回すと、Kerberosは、複数のユーザーを管理し、大量のサーバー間で認証を処理するのに最適なオプションのようです。残念ながら、私たちが希望どおりに機能させるにはいくつかの問題があるようです。パスワードを持つユーザーのSSH接続を処理するようにKerberosを設定することができましたが、パスワードを無効にしてSSHキーを使用することになると、それを理解できませんでした。

私たちはKerberosキータブの使用についても調査しましたが、PuTTYを介してそれらを機能させることも、接続情報を保存してキータブでタブ接続するための実行可能なソリューションを見つけることもできませんでした。

ここでの主な質問は次のとおりです。SSHキーでSSHユーザーを管理するためにKerberosを使用できますか?そうでない場合は、Kerberosキータブで動作するPuTTYのビルドが利用可能ですか、それともタブ接続を整理して持つことができる別の方法ですか?ありがとう!

3
Mark O'Reilly

PuTTY 0.61以降では、(公開鍵認証の代わりに)Kerberos/GSSAPIチケットを使用してSSHサーバーへの認証を行うことができます。これを有効にするには、PuTTYの設定メニューで[接続| SSH |認証| GSSAPI]に移動し、[GSSAPI認証の試行]が有効になっていることを確認します。 (Linux OpenSSHクライアントに相当するものは「ssh -K」です。)

PuTTYが必要なKerberosチケット認可チケットを取得する方法は2つあります。

  1. PuTTYは、ドメイン内のWindowsマシンにログインしたときに、WindowsがActive Directoryドメインサーバーから取得したすべてのチケットにアクセスできます。その場合、チケットを取得するために特別なことをする必要はありません。

  2. または(ドメインにないWindowsマシンなど)、PuTTYは、「MIT Kerberos for Windows」パッケージに付属の「MIT Kerberosチケットマネージャー」GUIツールを実行して取得したチケットにアクセスできます http://web.mit.edu/kerberos/dist/ )。 PuTTYを開始する前に、これを使用してKerberosチケットを取得してください。 「MIT Kerberos Ticket Manager」が実行されている場合、PuTTYで必要な場合は、Kerberosパスワードの入力を自動的に求められます。したがって、スタートアップフォルダに「MIT Kerberosチケットマネージャー」へのショートカットを追加することをお勧めします。

Sshdサーバー側:

  • KDCから取得し、/ etc/krb5.keytabにサーバーのキータブをインストールします。

  • /etc/ssh/sshd_configがあることを確認してくださいGSSAPIAuthentication yes Kerberos認証を有効にします。

krb5.confが両側で正しく設定されているため、PuTTYとsshdで使用されるGSSAPIライブラリが同じレルムを見つけ、同じKDCに接続します(レルムとKCDがDNS経由ですでに適切にアドバタイズされている場合を除きます)。に追加 krb5.conf)。

6
Markus Kuhn

まず、明確化。 KerberosとSSHキーは、SSHの2つの相互に排他的な認証方法です。 Kerberosを使用しないwith SSHキー。 Kerberos の代わりに SSHキーを使用します。どちらも「パスワードなし」のSSHログオンが可能です。 Kerberosプロトコル を少し読んでみてください。

Kerberosでは、エンドポイントに接続する前に、自分が本人であることを証明するTGTを取得する必要があります。 Active Directoryドメインに参加しているWindowsを使用している場合、ログイン時にActive DirectoryレルムのKerberos TGTが自動的に取得されます。しかし、多くの組織では、Active Directory Kerberosレルムを使用するようにLinuxホストを設定する手間を省いています。そうすれば、人生はずっと楽になります。そうでない場合は、他のKerberosレルムとチケットのリクエスト方法を認識するようにWindowsを設定する必要があることを意味します。ユーザーはAD TGTを放棄し、他のレルムのTGTを要求する必要があるため、これはユーザーにとって追加の手順でもあります。

(たとえば)ADユーザーが他のKerberosレルムのリソースに対して認証できるように、Kerberosレルム間の信頼を使用するオプションもあります。

Kerberosキータブファイルは、Kerberosアカウントパスワードの単なるファイル表現です。したがって、最初のTGTを要求するときに、有効なキータブファイルがあれば、パスワードを入力する必要はありません。ただし、これは通常、SSHクライアントの範囲外です。

有効なTGTを取得したら、GSSAPIを使用するようにSSHクライアントが構成されていることを確認する必要があります。 PuTTYはすぐにこれをサポートし、他のほとんどのユーザーも同様にサポートすると確信しています。

すべてが適切に構成されていると仮定すると、「正常に動作する」はずです。しかし、途中で発生する可能性のある構成の事故がたくさんあります。物事を簡単にすることができるサードパーティ製品もたくさんありますが、私は特定のものについて言及するのを控えます。

5
Ryan Bolger