会社がSSH公開鍵認証を無効にしているため、手動で入力する必要がありますパスワードを変更するたびに(/etc/ssh/sshd_config
を変更することは想定されていません)。
ただし、gssapi-keyex
とgssapi-with-mic
認証が有効になっています(以下のssh
デバッグ出力を参照してください)。
この場合、自動ログインを使用するにはどうすればよいですか?
gssapi-keyex
および/またはgssapi-with-mic
認証?
> ssh -v -o PreferredAuthentications=publickey hostxx.domainxx OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Connecting to hostxx.domainxx [11.22.33.44] port 22. debug1: Connection established. debug1: identity file /home/me/.ssh/identity type -1 debug1: identity file /home/me/.ssh/id_rsa type -1 debug1: identity file /home/me/.ssh/id_dsa type 2 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3 debug1: match: OpenSSH_5.3 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.3 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5 none debug1: kex: client->server aes128-ctr hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host "hostxx.domainxx" is known and matches the RSA host key. debug1: Found key in /home/me/.ssh/known_hosts:2 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: gssapi-keyex,gssapi-with-mic,password debug1: No more authentication methods to try. Permission denied (gssapi-keyex,gssapi-with-mic,password).
コメント
回答
たぶん。
- 標準のログインプロセスの一部として、または手動で(
kinit
、MIT Kerberos for Windows)、クライアントシステム上のプリンシパルのチケット? - サーバーにはKerberosプリンシパルがありますか、それとも与えることができますか?
host/[email protected]
の形式である必要があります。 - クライアントで
GSSAPI
認証が有効になっていますか? - クライアントは、DNS TXTリソースレコードまたはローカルマッピングのいずれかによって、サーバーがどのレルムに属しているかを知っていますか?
に「はい」と答えた場合上記のすべての、おめでとうございます。GSSAPIAuthentication
を使用できます。
- また、設定に応じて、資格情報の委任を有効にする必要があります。
テスト手順:
(仮定:domain = example.com; realm = Example.COM)
-
kinit [email protected]
- 理想的には、これは標準のログインプロセスで
pam_krb5
または適切なpam stack
内のpam_sss
(auth_provider = krb5
を使用)。
- 理想的には、これは標準のログインプロセスで
-
kvno host/[email protected]
- これはデバッグ手順です。
ssh
は、有効なキャッシュがあり、gssapi-with-mic
<をサポートするsshd
と通信している場合に自動的にこれを行います。 / div>またはgssapi-keyex
。
- これはデバッグ手順です。
-
dig _kerberos.example.com txt
は"EXAMPLE.COM"
- または、マッピングを
/etc/krb5.conf
の[domain_realm]
セクションに.example.com = EXAMPLE.COM
ですが、dns
メソッドのスケーリングははるかに優れています。
- または、マッピングを
-
ssh -o GSSAPIAuthentication=yes [email protected]
- サーバー上のプリンシパル以外のユーザー名にログインするには、ここでは詳しく説明していない詳細をマップする必要があります。
コメント
- こんにちは。しばらく前に+1を差し上げましたが、実際はそうではありません。 4つのポイントを確認する方法を知っています(私は管理者ではなく、開発者です)。SSH接続を確認するためのコマンドラインを提供してください。 g
gssapiauthentication
? Linuxマシンでgssapiauthentication
を使用することもできます。 (そのためにkinit
を使用する必要がありますか?)乾杯;)
回答
4ステップの方法が正しいです(DNSにはさらに洗練されたKerberos SRVレコードがあり、すべてのActive Directoryに存在します)。私はこれを常に使用しており、主にセキュリティと制御に関連する理由から、上記のpubkeyメソッドを提唱してきました。
とはいえ、これはインタラクティブなログインのみを提供しますが、ワークステーションでチケットを取得すると、準インタラクティブになる可能性があります。KerberosチケットはSSHエージェントのように機能します。一度取得すると、新しい接続は即座にパスワードなしで実行できます。時間制限はありますが。
インタラクティブなバッチログインを取得するには、キータブファイルを取得する必要があります。このファイルには、SSHキーの秘密の半分のように、Kerberosアカウントのパスワードが基本的に含まれています。セキュリティ上の注意が適用されます。特に、キータブは暗号化されておらず、パスワードで保護されていないためです。
ユーザーに個人アカウントのキータブを提供することには非常に消極的ですが、特に資格情報をリモートに委任することが重要な場合は、さまざまなバッチジョブに対して最小限の権限を持つサービスアカウントを積極的に使用していますシステム、pubkeyが単に達成できない何か。
キータブは、Unixではktutilを使用して、WindowsではKTPASS.EXE(AD Kerberosサービスからの後者)を使用して作成できます。 ktutilにはHeimdalとMITの2つのフレーバーがあり、構文が異なることに注意してください。関連するシステムのマンページを読むと役立ちます。
fab
ファイルの例?あなたは答えの中でそれを提供することができます。 (5分で、チュートリアル内でそれを行う方法が見つかりませんでした)。乾杯;)