Add-user-with-public-key
Tramite questa procedura è possibile aggiungere un utente ad un server linux con accesso tramite SSH e chiave pubblica.
Indice
Creazione della chiave (RSA)
Puoi fare riferimento alla pagina in cui viene descritta la procedura per crearla.
Creazione dell'utente
AWS Linux
Vedere l'articolo specifico.
UBUNTU
Cominciamo con la creazione dell'utente, operazione che va effettuata sulla macchina:
sudo useradd -m -g <group> -d /home/<username> -s /bin/bash <username>
...alla eliminazione della password per l'utente.
sudo passwd -d <username>
...ed alla aggiunta alla lista degli utenti che hanno accesso al comando sudo:
sudo usermod -aG sudo <username>
su sistemi Linux AWS vedere il seguente articolo:
sudo mkdir /home/<username>/.ssh
Possiamo a questo punto copiare il contenuto della chiave pubblica nel file 'authorized_keys.
In questo esempio apriamo il file con un editor e vi copiamo il contenuto, ma è possibile anche procedere con una copia del file tramite l'account dell'utente che già ha accesso alla macchina (scp)
sudo vi /home/<username>/.ssh/authorized_keys
Una volta copiato il contenuto è necessario sistemare i privilegi dei file appena toccati:
sudo chmod 700 /home/<username>/.ssh sudo chmod 600 /home/<username>/.ssh/authorized_keys sudo chown -R <username>:<group> /home/<username>/.ssh
UBUNTU on AWS
Cominciamo con la creazione dell'utente, operazione che va effettuata sulla macchina:
sudo adduser newuser --disabled-password --shell /bin/bash sudo passwd -d <username>
...ed alla aggiunta alla lista degli utenti che hanno accesso al comando sudo:
sudo usermod -aG sudo <username>
...infine ci presentiamo con l'utente creato e generiamo la configurazione SSH
sudo su - <username> mkdir .ssh chmod 700 .ssh touch .ssh/authorized_keys chmod 600 .ssh/authorized_keys
alla quale aggiungiamo la chiave pubblica dell'utente (Assicurarsi di incollare la chiave pubblica in una riga continua. La chiave pubblica non deve essere divisa su più righe.)
vi .ssh/authorized_keys
Possiamo ora tentare un collegamento utilizzando il client ssh ma fornendo tutti i parametri necessari:
ssh -i <path-to-private-key> <username>@<servername>
Per semplificare questo processo, è possibile configurare SSH sul proprio client per riconoscere i parametri di connessione.
Questa operazione la si compie modificando il file ~/.ssh/config per aggiungere le seguenti righe:
Host <serveralias> Hostname <servername> User <username> PreferredAuthentications publickey IdentityFile ~/.ssh/<my-private-key>