암호 프롬프트없이 kerberos로 로그인 할 수없는 데비안 스퀴즈 호스트가 있습니다. 동일하게 구성된 ubuntu 12.04 호스트는 정상적으로 작동하며 암호 프롬프트없이 로그인 할 수 있습니다.
kinit 후 klist는 다음을 제공합니다.
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: boti@REALM
Valid starting Expires Service principal
14/02/2013 16:37 15/02/2013 16:37 krbtgt/REALM@REALM
이제 ssh를 통해 debian-squeeze에 로그인하려고 할 때 비밀번호 프롬프트가 표시됩니다. 인증을하지 않고이 시점에서 티켓을 확인하면 다음과 같은 결과가 나타납니다.
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: boti@REALM
Valid starting Expires Service principal
14/02/2013 16:37 15/02/2013 16:37 krbtgt/REALM@REALM
14/02/2013 16:38 15/02/2013 16:37 host/debian-squeeze@
14/02/2013 16:38 15/02/2013 16:37 host/debian-squeeze@REALM
분명히 나는 티켓을 받는다. 그러나 ssh 디버그 로그는 다음을 제공합니다.
Postponed gssapi-with-mic for boti from 192.168.255.98 port 59557 ssh2
debug3: mm_request_send entering: type 40
debug3: mm_request_receive_expect entering: type 41
debug3: mm_request_receive entering
debug3: monitor_read: checking request 40
debug1: Unspecified GSS failure. Minor code may provide more information
Wrong principal in request
이것은 여기 , 여기 및 이 버그 리포트 에 설명 된 것과 매우 유사합니다 .
내 DNS는 괜찮습니다. 이미 주체 / 키를 재 작성하려고했습니다. 그래서 거기에 게시 된 솔루션 중 어느 것도 도움이되지 않았습니다.
힌트가 있습니까?
답변
샘플 출력에서 나는 debian-squeeze
점이없는 호스트 이름에 대한 키를 가지고 있음을 알았 습니다. 이것은 짧은 이름을 가리 키도록 역 해상도를 설정했음을 증명합니다. 실제로 FQDN이 아닌 이름입니까, 아니면 질문에 대해 편집 되었습니까?
Kerberos는 어느 쪽이든 작동하지만 호스트 자체가 호스트라고 생각하는지 다시 확인해야합니다 debian-squeeze
. 내부의 정방향-> 역방향 조회가 debian-squeeze
실제로 다음과 같이 해결되는지 확인하십시오 debian-squeeze
.
$ getent hosts $(hostname) | awk '{print $1; exit}' | xargs getent hosts | awk '{print $2}'
Kerberos가 짧은 이름으로 배포되는 것에 대해 들어 본 적이 없으므로 원하는 경우 FQDN을 사용하는 것이 좋습니다.
최신 정보:
클라이언트는 현재 짧은 이름의 키를 받고 있지만 서버는 긴 이름으로 이름이 올바르다 고 생각합니다. 문제가있을 수 있습니다. 확실하게 다음을 시도하십시오.
-
클라이언트에서 정방향 / 역방향 이름 조회를 확인하십시오. 즉
$ getent hosts debian-squeeze | awk '{print $1; exit}' | xargs getent hosts | awk '{print $2}'
반환 된 이름은 클라이언트가 티켓을 받으려고하는 이름입니다. 출력으로 판단하면 아마도 짧은 이름 일 것입니다.
-
서버에 어떤 키가 있는지 확인하십시오.
$ sudo klist -k /etc/krb5.keytab Keytab name: WRFILE:/etc/krb5.keytab KVNO Principal ---- -------------------------------------------------------------------------- 1 host/debian-squeeze.realm@REALM 1 host/debian-squeeze.realm@REALM 1 host/debian-squeeze.realm@REALM 1 host/debian-squeeze.realm@REALM ...
목록에 이전 명령의 호스트 이름과 일치하는 프린시 펄이 표시됩니다. 그것이 없으면 문제입니다. 그것이 있다면 …
-
kerberos 서버의 키 버전이의 키 버전과 동일한 지 확인하십시오
debian-squeeze
. 클라이언트에서 키를 명시 적으로 가져 와서 줄 끝에서 “KVNO”버전을 확인하십시오.$ kvno host/debian-squeeze.realm host/debian-squeeze.realm@REALM: kvno = 1
여하튼 이러한 모든 명령의 호스트 이름과 “kvno”버전이 일치해야합니다.
답변
서버의 / etc / hosts에 DNS 또는 키탭에있는 것과 일치하지 않는 IP 주소 항목이 포함 된 경우이 오류가 발생했습니다. / etc / hosts에서 모든 비 로컬 호스트 항목을 두 번 확인했거나 제거 했습니까?