Compania mea a dezactivat autentificarea cheii publice SSH, de aceea trebuie să introduc manual de fiecare dată parola mea (nu trebuie să schimb /etc/ssh/sshd_config
).
Cu toate acestea, gssapi-keyex
și gssapi-with-mic
sunt activate (vă rugăm să consultați mai jos ssh
ieșire de depanare).
Cum aș putea utiliza autentificarea automată în acest caz?
Pot să exploat gssapi-keyex
și / sau gssapi-with-mic
autentificări?
> 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).
Comentarii
Răspuns
Poate.
- Puteți obține un bilet pentru principalul dvs. pe sistemul dvs. client fie ca parte a procesului de autentificare standard, fie manual (
kinit
, MIT Kerberos pentru Windows)? - Serverul are un principal kerberos sau îi puteți da unul? Ar trebui să aibă forma
host/[email protected]
. - Autentificarea
GSSAPI
este activată pe clientul dvs.? - Știe clientul cărui domeniu îi aparține serverul fie prin înregistrarea resurselor DNS TXT, fie prin maparea locală?
Dacă ați spus „da” la toate din cele de mai sus, apoi felicitări, puteți utiliza GSSAPIAuthentication
.
- Puteți trebuie, de asemenea, să activați delegarea acreditării, în funcție de configurarea dvs.
Pași de testare:
(Presupunând: domeniu = exemplu.com; realm = EXAMPLE.COM)
-
kinit [email protected]
- În mod ideal, acest lucru este gestionat de procesul dvs. standard de conectare, incluzând fie
pam_krb5
, fiepam_sss
(cuauth_provider = krb5
) înpam stack
corespunzător.
- În mod ideal, acest lucru este gestionat de procesul dvs. standard de conectare, incluzând fie
-
kvno host/[email protected]
- Acesta este un pas de depanare.
ssh
face acest lucru automat dacă aveți un cache valid și discutați cu unsshd
care acceptăgssapi-with-mic
saugssapi-keyex
.
- Acesta este un pas de depanare.
-
dig _kerberos.example.com txt
ar trebui să returneze"EXAMPLE.COM"
- Alternativ, maparea ar putea fi stocată în secțiunea
[domain_realm]
din/etc/krb5.conf
ca.example.com = EXAMPLE.COM
, dar metodadns
este mult mai bună.
- Alternativ, maparea ar putea fi stocată în secțiunea
-
ssh -o GSSAPIAuthentication=yes [email protected]
- Pentru a vă conecta la alt nume de utilizator decât cel al principalului dvs. de pe server, va trebui să știți să-l mapați cu detalii despre care eu nu intru aici.
Comentarii
- Bună. Ți-am dat +1 cu ceva timp în urmă, dar, de fapt, nu știu cum să vă verific cele patru puncte. (Nu sunt administrator, doar dezvoltator). Vă rugăm să puteți furniza o linie de comandă pentru a verifica conexiunea SSH g
gssapiauthentication
? Poate că pot folosi șigssapiauthentication
pe mașina mea Linux. (ar trebui să folosesckinit
pentru asta?) Noroc;)
Răspuns
Metoda în 4 pași este corectă (există, de asemenea, înregistrări Kerberos SRV în DNS care sunt și mai elegante și sunt prezente în fiecare Active Directory). Folosesc acest lucru tot timpul și am susținut acest lucru mai sus metodele pubkey din, mai ales, motive legate de securitate și control.
Acestea fiind spuse, acest lucru oferă doar conectare interactivă, deși poate fi cvasi-interactivă după ce ați primit un bilet pe stația dvs. de lucru.Biletul Kerberos acționează la fel ca agentul SSH; odată ce îl ai, conexiunile noi sunt instantanee și fără parole; deși cu o limită de timp.
Pentru a obține datele de conectare interactive, trebuie să obțineți un fișier keytab, un fișier care conține în esență parola pentru un cont Kerberos, la fel ca jumătatea privată a unei chei SSH. În conformitate cu măsurile de securitate aplicabile; mai ales că tastatura nu este criptată sau protejată cu o parolă.
Sunt destul de reticent în a oferi utilizatorilor mei tastele lor pentru conturile lor personale, dar folosesc în mod agresiv conturi de servicii cu permisiuni minime pentru diferite lucrări în serie, mai ales în cazul în care este crucial ca acreditările să fie delegate la distanță sistemul, ceva ce pubkey pur și simplu nu poate realiza.
Keytabs pot fi create folosind ktutil pe Unix sau KTPASS.EXE pe Windows (acesta din urmă de la serviciile AD Kerberos). Rețineți că ktutil există în două arome, Heimdal și MIT, iar sintaxa lor diferă. Citirea paginii de manual pe un sistem relevant vă ajută.
fab
care s-ar conecta la o altă mașină (SSH gssapi fără a cere o parolă) și ar deschide un shell? Îl puteți furniza într-un răspuns. (În cinci minute, nu am găsit în tutorial cum să fac asta). Noroc;)