4

Cygwin を使用して、Kerberos チケットでホストに ssh できないのはなぜですか? これが私の設定です:

    $ cat .ssh/config
Host *

GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes

これが私がsshの試みで得たものです:

$ ssh -v user@host.net
OpenSSH_3.5p1f3, SSH protocols 1.5/2.0, OpenSSL 0x0090702f
2420: debug1: Reading configuration data /home/user/.ssh/config
2420: debug1: Rhosts Authentication disabled, originating port will not be trusted.
2420: debug1: ssh_connect: needpriv 0
2420: debug1: Connecting to host.net [xx.xx.xx.xx] port 22.
2420: debug1: Connection established.
2420: debug1: identity file /home/atanasdichev/.ssh/identity type -1
2420: debug1: identity file /home/atanasdichev/.ssh/id_rsa type -1
2420: debug1: identity file /home/atanasdichev/.ssh/id_dsa type -1
2420: debug1: Remote protocol version 2.0, remote software version OpenSSH_5.4p1 FreeBSD-20100308
2420: debug1: match: OpenSSH_5.4p1 FreeBSD-20100308 pat OpenSSH*
2420: debug1: Enabling compatibility mode for protocol 2.0
2420: debug1: Local version string SSH-2.0-OpenSSH_3.5p1f3
2420: debug1: Miscellaneous failure
2420: debug1: Program lacks support for encryption type
2420: debug1: SSH2_MSG_KEXINIT sent
2420: debug1: SSH2_MSG_KEXINIT received
2420: debug1: kex: server->client aes128-cbc hmac-md5 none
2420: debug1: kex: client->server aes128-cbc hmac-md5 none
2420: debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent
2420: debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
2420: debug1: dh_gen_key: priv key bits set: 119/256
2420: debug1: bits set: 1028/2048
2420: debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
2420: debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
2420: debug1: Host 'host.net' is known and matches the RSA host key.
2420: debug1: Found key in /home/user/.ssh/known_hosts:1
2420: debug1: bits set: 1000/2048
2420: debug1: ssh_rsa_verify: signature correct
2420: debug1: kex_derive_keys
2420: debug1: newkeys: mode 1
2420: debug1: SSH2_MSG_NEWKEYS sent
2420: debug1: waiting for SSH2_MSG_NEWKEYS
2420: debug1: newkeys: mode 0
2420: debug1: SSH2_MSG_NEWKEYS received
2420: debug1: done: ssh_kex2.
2420: debug1: send SSH2_MSG_SERVICE_REQUEST
2420: debug1: service_accept: ssh-userauth
2420: debug1: got SSH2_MSG_SERVICE_ACCEPT


                ------------- WARNING -------------
                THIS IS A PRIVATE COMPUTER SYSTEM.
                -----------------------------------

        This computer system including all related equipment,
        network devices (specifically including Internet access),
        are provided only for authorized use. All computer systems
        may be monitored for all lawful purposes, including to
        ensure that their use is authorized, for management of the
        system, to facilitate protection against unauthorized
        access, and to verify security procedures, survivability and
        operational security. Monitoring includes active attacks by
        authorized personnel and their entities to test or verify
        the security of the system. During monitoring, information
        may be examined, recorded, copied and used for authorized
        purposes. All information including personal information,
        placed on or sent over this system may be monitored. Uses of
        this system, authorized or unauthorized, constitutes consent
        to monitoring of this system. Unauthorized use may subject
        you to criminal prosecution. Evidence of any such
        unauthorized use collected during monitoring may be used for
        administrative, criminal or other adverse action. Use of
        this system constitutes consent to monitoring for these
        purposes.



2420: debug1: authentications that can continue: publickey,gssapi-with-mic
2420: debug1: next auth method to try is publickey
2420: debug1: try privkey: /home/user/.ssh/identity
2420: debug1: try privkey: /home/user/.ssh/id_rsa
2420: debug1: try privkey: /home/user/.ssh/id_dsa
2420: debug1: no more auth methods to try
2420: Permission denied (publickey,gssapi-with-mic).
2420: debug1: Calling cleanup 0x41c5a0(0x0)

gssapi-with-mic auth メソッドを試すことができないようです。これはなぜですか? krb5.conf ファイルで何を指定する必要がありますか? ありがとう

4

2 に答える 2

2

OpenSSH では、Kerberos をサポートするために GSSAPI および libkrb5 ライブラリが必要です。Windows はどちらも提供していないため、これを機能させるには、MIT Kerberos または Heimdal のいずれかの Cygwin バージョンがインストールされている必要があります。これらは、Windows ネイティブの Kerberos システムによって取得された資格情報を自動的に使用しません。Kerberos 資格情報 (TGT) を取得するには、「kinit」を明示的に使用する必要があります。

krb5.conf に何を入れるかについて、単一のレシピはありません。Kerberos は複雑で、多くの可能性があります。周囲のインフラストラクチャによって異なります。非常に単純な出発点の 1 つとして、次のようなものがあります。

[libdefaults]
    default_realm = FOO.COM
[realms]
FOO.COM = {
    kdc = kdc.foo.com
}

ここで、単一の Kerberos レルムは FOO.COM であり、レルムの KDC (Kerberos 認証サーバー) は kdc.foo.com です。クライアントが DNS SRV レコードを介して KDC を見つけられるようにすることをお勧めします (存在する場合)。

kinit を使用して認証してから、klist を使用して資格情報を確認します。

これらのメッセージ:

2420: debug1: Miscellaneous failure 2420: debug1: Program lacks support for encryption type

... すでにこれらの一部またはすべてが整っている可能性があることを私に提案してください。私の最初の推測では、TGT がありますが、インストールされている Kerberos のバージョン (または ssh.exe がリンクされているため、異なる可能性があります) でサポートされていないセッション キー暗号化タイプを使用しています。OpenSSH クライアントのバージョン (3.5) はかなり古いことに注意してください。最近の Windows は AES-256 を優先します。おそらく、お使いの Kerberos バージョンがこの新しい暗号をサポートしていない可能性があります。ただし、これは推測にすぎません。もっと情報が必要です。klist -ef の出力と、ssh (-vvv) からのより詳細な出力を投稿します。

于 2014-02-27T06:52:36.217 に答える