La mia azienda ha disabilitato lautenticazione con chiave pubblica SSH, quindi devo inserirla manualmente ogni volta la mia password (non dovrei cambiare /etc/ssh/sshd_config).

Tuttavia gssapi-keyex e gssapi-with-mic le autenticazioni sono abilitate (vedi sotto ssh output di debug).

Come posso utilizzare laccesso automatico in questo caso?
Posso sfruttare gssapi-keyex e / o gssapi-with-mic autenticazioni?

> 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). 

Commenti

  • Python ‘ s fabric fa un ottimo lavoro nellaffrontare lautomazione ssh.
  • Ciao @ DanGarthwaite Utilizzi Fabric per accedere manualmente ad altri server remoti? Per favore, puoi spiegare come lo usi. Si prega di fornire una risposta. Saluti
  • Se non sei ‘ in un reame Kerberos (o dominio Active Directory), è improbabile che GSSAPI ti sia utile. Detto questo, disabilitare lautenticazione con chiave pubblica sembra abbastanza assurdo.
  • @olibre Fabric è unutilità per eseguire comandi su uno o più server tramite SSH. Questi comandi sono generalmente organizzati in un ” fabfile “, come un Makefile. Fa un ottimo lavoro nel far scomparire SSH (una volta autenticato) e gestisce tutti i molti modi in cui i client e i server SSH tendono a interrompere il controllo. È disponibile un breve tutorial: docs.fabfile.org/en/1.7/tutorial.html
  • Per favore @DanGarthwaite, potresti dare un esempio di un file fab che accede a unaltra macchina (SSH gssapi senza chiedere una password) e apre una shell? Puoi fornirlo allinterno di una risposta. (In cinque minuti, non ho trovato nel tutorial come farlo). Saluti;)

Risposta

Forse.

  • Puoi ottenere un ticket per il tuo principale sul tuo sistema client come parte del processo di accesso standard o manualmente (kinit, MIT Kerberos per Windows)?
  • Il server ha un principal Kerberos o puoi dargliene uno? Deve essere nel formato host/[email protected].
  • Lautenticazione GSSAPI è abilitata sul tuo client?
  • Il tuo client sa a quale ambito appartiene il server tramite il record di risorse DNS TXT o la mappatura locale?

Se hai detto “sì” a tutto di cui sopra, quindi congratulazioni, puoi utilizzare GSSAPIAuthentication.

  • Puoi è inoltre necessario abilitare la delega delle credenziali, a seconda della configurazione.

Passaggi del test:
(supponendo: domain = example.com; realm = EXAMPLE.COM)

  1. kinit [email protected]
    • Idealmente questo viene gestito dal processo di accesso standard includendo pam_krb5 o pam_sss (con auth_provider = krb5) nellapposito pam stack.
  2. kvno host/[email protected]
    • Questo è un passaggio di debug. ssh lo fa automaticamente se disponi di una cache valida e stai parlando con un sshd che supporta gssapi-with-mic o gssapi-keyex.
  3. dig _kerberos.example.com txt dovrebbe restituire "EXAMPLE.COM"
    • In alternativa, la mappatura può essere archiviata nella [domain_realm] sezione di /etc/krb5.conf come .example.com = EXAMPLE.COM, ma il metodo dns scala molto meglio.
  4. ssh -o GSSAPIAuthentication=yes [email protected]
    • Per accedere a un nome utente diverso da quello del tuo principale sul server dovrai sapere per mapparlo i dettagli di cui non sto entrando qui.

Commenti

  • Ciao. Ti ho dato +1 qualche tempo fa, ma in realtà non lo faccio sapere come controllare i tuoi quattro punti. (Non sono un amministratore, solo uno sviluppatore). Per favore, potresti fornire una riga di comando per controllare la connessione SSH usando g gssapiauthentication? Forse posso anche usare gssapiauthentication sulla mia macchina Linux. (dovrei usare kinit per questo?) Cheers;)

Answer

Il metodo in 4 passaggi è corretto (ci sono anche record Kerberos SRV nel DNS che sono ancora più eleganti e sono presenti in ogni Active Directory). Lo uso sempre e ho sostenuto questi metodi sopra pubkey per, principalmente, motivi di sicurezza e controllo.

Detto questo, questo fornisce solo un login interattivo, sebbene possa essere quasi interattivo una volta che hai ottenuto un ticket sulla tua workstation.Il ticket Kerberos si comporta in modo molto simile allagente SSH; una volta installato, le nuove connessioni sono istantanee e prive di password; anche se con un limite di tempo.

Per ottenere un accesso batch interattivo, è necessario ottenere un file keytab, un file che essenzialmente contiene la password per un account Kerberos, molto simile alla metà privata di una chiave SSH. Secondo le precauzioni di sicurezza si applicano; soprattutto perché la keytab non è crittografata o protetta con una password.

Sono piuttosto riluttante a fornire ai miei utenti le schede delle chiavi per i loro account personali, ma utilizzo in modo aggressivo account di servizio con autorizzazioni minime per vari lavori batch, soprattutto dove è fondamentale che le credenziali siano delegate al telecomando sistema, qualcosa che pubkey semplicemente non può ottenere.

I keytab possono essere creati usando ktutil su Unix o KTPASS.EXE su Windows (questultimo dai servizi AD Kerberos). Nota che ktutil esiste in due versioni, Heimdal e MIT, e la loro sintassi è diversa. La lettura della manpage su un sistema pertinente aiuta.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *