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

  • Țesătura Python ‘ face o treabă excelentă de a face față automatizării ssh.
  • Salut @ DanGarthwaite Folosiți Fabric pentru a vă conecta manual la alte servere la distanță? Vă rugăm să puteți explica modul în care îl utilizați. Vă rugăm să furnizați un răspuns. Noroc
  • Dacă nu sunteți ‘ t într-un tărâm Kerberos (sau domeniu Active Directory), este puțin probabil ca GSSAPI să vă fie de folos. Acestea fiind spuse, dezactivarea autentificării cheii publice pare destul de absurdă.
  • @olibre Fabric este un utilitar pentru a rula comenzi pe unul sau mai multe servere prin SSH. Aceste comenzi sunt de obicei organizate într-un ” fabfile „, ca un Makefile. Face o treabă extrem de bună de a face să dispară SSH (odată ce vă autentificați) și gestionează toate modurile în care clienții și serverele SSH tind să întrerupă controlul. Este disponibil un tutorial rapid: docs.fabfile.org/en/1.7/tutorial.html
  • Vă rog @DanGarthwaite, ați putea da un exemplu de fișier 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;)

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)

  1. kinit [email protected]
    • În mod ideal, acest lucru este gestionat de procesul dvs. standard de conectare, incluzând fie pam_krb5, fie pam_sss (cu auth_provider = krb5) în pam stack corespunzător.
  2. 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 un sshd care acceptă gssapi-with-mic sau gssapi-keyex.
  3. 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 metoda dns este mult mai bună.
  4. 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 și gssapiauthentication pe mașina mea Linux. (ar trebui să folosesc kinit 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ă.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *