회사에서 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
, Windows 용 MIT Kerberos)으로 클라이언트 시스템의 보안 주체에 대한 티켓? - 서버에 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을했지만 실제로는 네 가지 사항을 확인하는 방법을 알고 있습니다. (저는 관리자가 아니라 개발자 일뿐입니다.) 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의 두 가지 유형으로 존재하며 구문이 다릅니다. 관련 시스템의 맨 페이지를 읽으면 도움이됩니다.
fab
파일의 예는 무엇입니까? 답변 내에서 제공 할 수 있습니다. (5 분 동안 튜토리얼에서 그 방법을 찾지 못했습니다). 건배;)