EC2: più chiavi ssh per un'istanza?


12

È possibile creare più di una chiave privata per SSH in un'istanza EC2? Qual è la migliore pratica generale per questo? Abbiamo più utenti che hanno bisogno di SSH nei server e la distribuzione di una chiave non funziona bene. Questo non ci consente di rimuovere gli utenti dalla possibilità di SSH nel server a meno che non cambiamo la chiave e ridistribuiamo.



Quando si esegue la gestione delle chiavi SSH per un team, è probabilmente meglio consultare uno strumento specializzato come Userify o SSH UKM (Disclaimer: lavoro per Userify).
Jamieson Becker,

Risposte:


5

Assolutamente; inserisci semplicemente tutte le chiavi pubbliche pertinenti nell'immagine e dovresti avere ragione. Preferisco usare un sistema di gestione della configurazione per gestire le chiavi SSH; in questo modo è abbastanza banale revocare l'accesso di un utente anche su sistemi in esecuzione. Ci sono anche molti altri ... diciamo "fantasiosi" ... modi di gestirlo, come la memorizzazione di tutte le chiavi SSH in LDAP, che centralizzano le chiavi SSH come qualsiasi altra credenziale.


2
Quando inizi a voler archiviare le chiavi SSH in LDAP è tempo di conoscere Kerberos.
84104,

1
Ho distribuito Kerberos; personalmente, penso che sia una soluzione alla ricerca di un problema, e una soluzione piuttosto schizzinosa e fastidiosa.
womble

2
@Ash: le domande vanno nelle domande, non nei commenti.
womble

1
Stavo per ignorare il commento di cui sopra - ma per chiunque non conoscesse il sito mi è sembrato di chiarire che se si dispone di un commento relativo all'implementazione della risposta fornita, chiarimenti o incomprensioni, questo dovrebbe essere chiarito nei commenti, in modo che l'OP possa apportare modifiche alla risposta al fine di chiarire l'eventuale confusione che può verificarsi.
Mazatec,

2
No, dovresti porre domande di chiarimento nei commenti se la risposta non risponde alla domanda originariamente posta. Se desideri porre una nuova domanda in base al contenuto di una risposta, devi utilizzare il grande pulsante "Poni domanda" nell'angolo in alto a destra della pagina per porre una nuova domanda. Questo è un sito di domande e risposte, non un forum di discussione.
womble

6

È inoltre possibile utilizzare meccanismi ssh standard. L'approccio migliore sarebbe se l'utente eseguisse sulla propria macchina ssh-keygenper generare la sua coppia di chiavi. Quindi ti inviano ~/.ssh/id_rsa.pub(o id_dsa.pub, a seconda dell'algoritmo scelto) e aggiungi il suo contenuto .ssh/authorized_keysall'host di destinazione nella directory home dell'account utente a cui dovrebbero poter accedere. Può esserci più di una chiave nel file. Uno per riga. E questo è tutto! La stessa chiave pubblica (id_rsa.pub) può essere utilizzata su qualsiasi numero di host: identificherà sempre l'utente.

Puoi anche farlo diversamente: esegui ssh-keygen e pubblica ~ / .ssh / id_rsa (o id_dsa) per l'utente. E l'utente salva il file in ~ / .ssh / id_rsa. Devo solo ricordare di cambiare i permessi a 600 (-rw -------) di quel file, altrimenti ssh non lo accetterà. Questo è ovviamente meno sicuro, poiché la chiave privata viene probabilmente distribuita via e-mail.

Può anche essere fatto in PuTTY con PuTTYgen.


1

Un modo più semplice è come mostrato di seguito.

Per utenti Linux / Mac:

  1. Per creare chiavi pubbliche e private utilizzare il comando seguente: $ ssh-keygen -t rsa -b 4096

  2. Carica la chiave pubblica in una cartella nel tuo bucket S3. Ad esempio: S3> MyBucket> Keypair

  3. Salva e proteggi la tua chiave privata.

Per utenti Windows:

  1. Usa puttygen per generare le chiavi.
  2. Segui DigitalOcean per creare chiavi SSH.
  3. Carica la chiave pubblica su S3> MyBucket> Keypair
  4. Salva e proteggi la tua chiave privata.

I seguenti passaggi sono importanti durante l'avvio di qualsiasi AMI Linux.

  1. Assicurarsi che il ruolo IAM abbia un ruolo creato con la politica AmazonS3FullAccess. Ciò consente all'istanza di assumere un ruolo per accedere ai bucket S3. Ciò è necessario per leggere le chiavi pubbliche da S3 e copiarle nel profilo utente

  2. Aggiungi il seguente codice nella sezione dati utente in Configura dettagli istanza> Dettagli avanzati (come testo):

    #!/bin/bash
    usermod user 1
    usermod -aG wheel user1
    mkdir /home/user1/.ssh/
    aws s3 cp s3://MyBucket    /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
    
    useradd user2
    usermod -aG wheel user2
    mkdir /home/user2/.ssh/
    aws s3 cp s3://MyBucket   /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
    
    sudo -i 
    echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    
    yum update -y
    

Questa configurazione crea User1 e User2 e li aggiunge agli utenti sudo . Il comando aws s3 cp copia le chiavi pubbliche degli utenti dalla cartella S3 nella loro .ssh/authorized_keys path. L'ultima sezione è eseguire i comandi come amministratore senza la necessità di password.

Ci sono molti miglioramenti della sicurezza che possono essere raccomandati qui. Sebbene non sia esplicitamente utilizzato in questo esempio, limitare l'accesso al bucket S3 a un bucket specifico e conoscere le implicazioni di sicurezza della disabilitazione dell'utilizzo della password in sudo, sono alcune cose che possono essere evidenziate. Usali saggiamente in base alle tue esigenze particolari.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.