회사에서 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). 

댓글

  • Python '의 패브릭은 ssh 자동화를 잘 처리합니다.
  • 안녕하세요 @ DanGarthwaite Fabric 을 사용하여 다른 원격 서버에 수동으로 로그인하십니까? 어떻게 사용하는지 설명해 주시겠습니까? 답변 해주십시오. 건배
  • Kerberos 영역 (또는 Active Directory 도메인)에 있지 않은 경우 ' GSSAPI가 유용하지 않을 수 있습니다. 즉, 공개 키 인증을 비활성화하는 것은 어리석은 것 같습니다.
  • @olibre Fabric은 SSH를 통해 하나 이상의 서버에서 명령을 실행하는 유틸리티입니다. 이러한 명령은 일반적으로 Makefile과 같은 " fabfile "에 구성됩니다. 그것은 SSH를 사라지게 만드는 아주 좋은 일을하고 (인증하면) SSH 클라이언트와 서버가 제어를 방해하는 모든 방법을 처리합니다. 빠른 자습서를 사용할 수 있습니다. docs.fabfile.org/en/1.7/tutorial.html
  • @DanGarthwaite를주세요. 다른 컴퓨터 (비밀번호를 묻지 않고 SSH gssapi)에 로그인하여 셸을 여는 fab 파일의 예는 무엇입니까? 답변 내에서 제공 할 수 있습니다. (5 분 동안 튜토리얼에서 그 방법을 찾지 못했습니다). 건배;)

답변

아마도

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

모든 위의 모든 항목을 축하합니다. GSSAPIAuthentication를 사용할 수 있습니다.

  • 또한 설정에 따라 자격 증명 위임을 활성화해야합니다.

테스트 단계 :
(가정 : domain = example.com, realm = EXAMPLE.COM)

  1. kinit [email protected]
    • 이상적으로 이것은 pam_krb5를 포함하여 표준 로그인 프로세스에 의해 처리됩니다. 적절한 pam stackpam_sss (auth_provider = krb5 포함).
  2. kvno host/[email protected]
    • 이것은 디버깅 단계입니다. ssh는 유효한 캐시가 있고 gssapi-with-mic<를 지원하는 sshd와 대화하는 경우이 작업을 자동으로 수행합니다. / div> 또는 gssapi-keyex.
  3. dig _kerberos.example.com txt"EXAMPLE.COM"
    • 또는 매핑을 /etc/krb5.conf[domain_realm] 섹션에 .example.com = EXAMPLE.COM,하지만 dns 메서드는 훨씬 더 잘 확장됩니다.
  4. ssh -o GSSAPIAuthentication=yes [email protected]
    • 서버에서 사용자 이름이 아닌 다른 사용자 이름으로 로그인하려면 여기에 입력하지 않은 세부 정보를 매핑해야합니다.

댓글

  • 안녕하세요. 얼마 전에 +1을했지만 실제로는 네 가지 사항을 확인하는 방법을 알고 있습니다. (저는 관리자가 아니라 개발자 일뿐입니다.) SSH 연결을 확인하는 명령 줄을 입력 해 주시겠습니까? g gssapiauthentication? Linux 컴퓨터에서 gssapiauthentication를 사용할 수도 있습니다. (kinit를 사용해야합니까?) 건배;)

답변

4 단계 방법이 정확합니다 (DNS에는 훨씬 더 우아하고 모든 Active Directory에있는 Kerberos SRV 레코드도 있습니다). 나는 항상 이것을 사용하고, 주로 보안 및 제어 관련 이유로 위의 pubkey 메서드를 옹호 해 왔습니다.

즉, 워크 스테이션에서 티켓을 받으면 유사 대화식 로그인이 가능하지만 대화 형 로그인 만 제공합니다.Kerberos 티켓은 SSH 에이전트와 매우 유사하게 작동합니다. 일단 당신이 그것을 가지고, 새로운 연결은 즉각적이고 암호가 필요 없습니다. 시간 제한이 있지만.

대화식 배치 로그인을 얻으려면 SSH 키의 개인 절반과 매우 유사한 Kerberos 계정의 암호를 기본적으로 포함하는 파일 인 keytab 파일을 가져와야합니다. 보안 예방 조치에 따라 적용됩니다. 특히 keytab은 암호화되지 않았거나 암호로 보호되지 않기 때문입니다.

사용자에게 개인 계정에 대한 키탭을 제공하는 것을 매우 꺼려하지만, 특히 자격 증명을 원격으로 위임하는 것이 중요한 경우 다양한 일괄 작업에 대해 최소한의 권한이있는 서비스 계정을 적극적으로 사용하고 있습니다. 시스템, pubkey가 단순히 달성 할 수없는 무언가.

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

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다