gssapi-keyex 또는 gssapi-with-mic를 사용한 SSH 인증 (공개 키는 허용되지 않음)


15

회사에서 SSH 공개 키 인증을 사용하지 않도록 설정했기 때문에 비밀번호를 변경할 때마다 수동으로 입력해야합니다 (변경할 생각은 없습니다 /etc/ssh/sshd_config).

그러나 gssapi-keyexgssapi-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).

1
파이썬의 패브릭은 ssh 자동화를 다루는 훌륭한 일을합니다.
Dan Garthwaite

안녕하세요 @DanGarthwaite Fabric 을 사용 하여 다른 원격 서버에 수동으로 로그인합니까? 사용 방법을 설명해주세요. 답변을 제공해주세요. 건배
올리버

3
Kerberos 영역 (또는 Active Directory 도메인)에 있지 않은 경우 GSSAPI가 유용하지 않을 수 있습니다. 즉, 공개 키 인증을 사용하지 않도록 설정하는 것은 매우 터무니없는 것 같습니다.
Michael Hampton

1
@olibre Fabric은 SSH를 통해 하나 이상의 서버에서 명령을 실행하는 유틸리티입니다. 이러한 명령은 일반적으로 Makefile과 같은 "fabfile"로 구성됩니다. 그것은 SSH를 사라지게 만드는 매우 좋은 일을하고 (한 번 인증하면) SSH 클라이언트와 서버가 제어를 방해하는 많은 방법을 처리합니다. 빠른 자습서를 사용할 수 있습니다. docs.fabfile.org/en/1.7/tutorial.html
Dan Garthwaite

@DanGarthwaite, fab다른 컴퓨터에 로그인하고 (암호를 묻지 않고 SSH gssapi) 쉘을 여는 파일 의 예를 들어 주 시겠습니까? 답변 내에서 제공 할 수 있습니다. (5 분 안에, 튜토리얼 내에서 그렇게하는 방법을 찾지 못했습니다). 건배;)
olibre

답변:


19

아마도.

  • 표준 로그인 프로세스의 일부로 또는 수동으로 ( kinit, Windows 용 MIT Kerberos) 클라이언트 시스템에서 프린시 펄에 대한 티켓을 얻을 수 있습니까 ?
  • 서버에 Kerberos 보안 주체가 있습니까 아니면 서버에 주체를 줄 수 있습니까? 형식이어야합니다 host/server.example.com@EXAMPLE.COM.
  • 되어 GSSAPI클라이언트에 인증 활성화?
  • 클라이언트는 DNS TXT 리소스 레코드 또는 로컬 매핑으로 서버가 속한 영역을 알고 있습니까?

위의 모든 내용 에 "예"라고 말하면 축하합니다 GSSAPIAuthentication.

  • 설정에 따라 자격 증명 위임을 활성화해야 할 수도 있습니다.

테스트 단계 :
(가정 : domain = example.com; 영역 = EXAMPLE.COM)

  1. kinit username@EXAMPLE.COM
    • 이상적으로는 표준 로그인 프로세스에서 pam_krb5또는에 pam_sss(with auth_provider = krb5)를 포함하여 처리합니다 pam stack.
  2. kvno host/server.example.com@EXAMPLE.COM
    • 이것은 디버깅 단계입니다. ssh유효한 캐시를 가지고 당신이 이야기하는 경우이 작업을 자동으로 수행 sshd하는 지원 gssapi-with-mic이나 gssapi-keyex.
  3. dig _kerberos.example.com txt 돌아와야한다 "EXAMPLE.COM"
    • 또한 매핑이 저장 될 수있는 [domain_realm]섹션 /etc/krb5.conf으로 .example.com = EXAMPLE.COM하지만, dns방법의 저울 훨씬 더.
  4. ssh -o GSSAPIAuthentication=yes username@server.example.com
    • 서버에서 교장과 다른 사용자 이름으로 로그인하려면 여기에 들어 가지 않는 세부 정보를 매핑해야합니다.

안녕하세요. 나는 얼마 전에 당신에게 +1을 주었지만 사실, 나는 네 가지 포인트를 확인하는 방법을 모른다. (저는 관리자가 아니라 개발자 일뿐입니다). gssapiauthentication?를 사용하여 SSH 연결을 확인하는 명령 줄을 제공 할 수 있습니까? gssapiauthenticationLinux 시스템에서 사용할 수도 있습니다 . (나는 그것을 위해 사용해야 kinit합니까?) 건배;)
olibre

5

4 단계 방법은 정확합니다 (DNS에는 더 우아하고 모든 Active Directory에 존재하는 Kerberos SRV 레코드도 있습니다). 나는 이것을 항상 사용하고 있으며 대부분 보안 및 제어 관련 이유로 위의 pubkey 방법을 옹호 해 왔습니다.

즉, 워크 스테이션에서 티켓을 얻은 후에는 준 대화식 일 수 있지만 대화 형 로그인 만 가능합니다. Kerberos 티켓은 SSH 에이전트와 매우 유사합니다. 일단 당신이 그것을 가지고, 새로운 연결은 즉각적이고 암호가 없습니다; 시간 제한이 있지만.

대화식 배치 로그인을 얻으려면 SSH 키의 개인 절반과 같이 Kerberos 계정의 암호가 기본적으로 포함 된 파일 인 keytab 파일을 가져와야합니다. 보안 예방 조치에 따라; 특히 키탭은 암호로 암호화되거나 보호되지 않기 때문입니다.

나는 사용자들에게 개인 계정에 대한 키탭을 제공하는 것을 꺼려하지만, 특히 다양한 배치 작업에 대한 최소한의 권한으로 서비스 계정을 적극적으로 사용하고 있습니다. 달성.

키탭은 Unix의 ktutil 또는 Windows의 KTPASS.EXE (AD Kerberos 서비스의 후자)를 사용하여 만들 수 있습니다. ktutil은 Heimdal과 MIT의 두 가지 맛으로 존재하며 구문이 다릅니다. 관련 시스템에서 맨 페이지를 읽으면 도움이됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.