Add-user-with-public-key
Tramite questa procedura è possibile aggiungere un utente ad un server linux con accesso tramite SSH e chiave pubblica.
Creazione dell'utente
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>
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
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>