Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Come creare un utente su Linux istanza EC2 su AWS e aggiungere una chiave pubblica utilizzando uno script di shell

Creazione di un utente e l’aggiunta di una chiave pubblica può essere molto noioso. In questo articolo, vedremo come questo processo può essere automatizzato utilizzando uno script di shell che ci può aiutare a evitare errori umani che possono sorgere in noi il compito manualmente.

Pre-requisiti

  1. Conoscenza di base di Script di Shell.
  2. AWS Account (Creare , se non avete uno).
  3. Istanza EC2 con l’utente di avere accesso con sudo (Clicca qui per saperne di creare un’istanza EC2 se non ne avete uno, o se si vuole imparare )

Che cosa faremo

  1. Creare uno script e una coppia di chiavi pubblica privata.
  2. Creare un utente con lo script.

Creare uno script e una coppia di chiavi pubblica privata

Creare uno script con il seguente codice. È possibile trovare lo stesso codice sul mio Github repo sul seguente link.

Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/shell-scripts/aws-ec2-create-user-add-public-key/provide-access.sh
File: provide-access.sh
helpFunction()
{ 
 echo ""
 printf "\033[1;32mUsage: $0 -K <interne.pem> -U <interne-utente> -I <interne-ip> -u <utente-per-essere-creata> -k <\"a chiave pubblica-string-condivisa-da-la-utente\">"
 echo ""
 echo-e "\t-K \".pem chiave del server in cui un nuovo utente che ha creato\""
 echo-e "\t-U nome utente del server in cui un nuovo utente che ha creato"
 echo-e "\t-I IP del server in cui un nuovo utente che ha creato "
 echo-e "\t-u utente creato sul server interno"
 echo-e "\t-k \"chiave pubblica stringa da aggiungere condivise dall'utente\""
 echo-e "Mettere a Chiave Pubblica tra doppi apici"

 echo-e ", per esempio"
 echo "./provide-access.sh -U ubuntu -K /Users/cloudcover/Documenti/Rahul/accesso/rahuls.pem io 192.168.134.100 -u rahul -k \"ssh-rsa Z1rbx6/F/ZntfkvKzX6e82oYOOLb9QtTu4IO+W560+afjp1xLOYqWKeEsZycq0iyHX5herNWxorlu3ggnwgsabcb+62yP3eaESMMHMR91OeDsxeLL41ABANofmroq8ydjncyvuxjkwyznzujxgnn5kngwkuowhgbcfmhusz1wvuwa+rhhk1CPZFywUdsDeGR/Dxd+oNKGvaKGIQuDqK1vY5GiLg0N+OvanTPbLper3/Z5A5d62fRF6+mensZGsKW543 nome-chiave\""

 echo-e "\033[0m" #ripristina i colori
 exit 1 # Esci dallo script dopo la stampa
}

mentre getopts "io:K:U:u:k:" opt
fare
 case "$opt" in
 K ) internalServerPemKey="$OPTARG" ;;
 U ) internalServerUser="$OPTARG" ;; 
 I ) internalServerIP="$OPTARG" ;;
 u ) userName="$OPTARG" ;;
 k ) stringachiave="$OPTARG" ;;
 ? ) helpFunction ;; # Stampa helpFunction nel caso in cui il parametro è inesistente
esac
fatto

# Stampa helpFunction nel caso in cui i parametri sono vuote
if [ -z "$internalServerIP" ] || [ -z "$internalServerPemKey" ] || [ -z "$internalServerUser" ] || [ -z "$userName" ] || [ -z "$stringachiave" ]
quindi
 printf "\033[1;31m"
 echo "Alcuni o tutti i parametri sono vuote";
helpFunction
fi

# Inizio dello script nel caso in cui tutti i parametri sono corretti
printf "\033[1;33m------------------------------------------------------------------Prima di ssh"
echo-e "\033[0m" #ripristina i colori
echo ".pem chiave del server in cui un nuovo utente che ha creato : $internalServerPemKey"
echo "nome utente del server in cui un nuovo utente che ha creato : $internalServerUser"
echo "l'IP del server in cui un nuovo utente che ha creato : $internalServerIP"
echo "utente creato sul server interno : $userName"
echo "stringa chiave pubblica per essere aggiunto condivise dall'utente : $stringachiave"


printf "\033[1;31mLogging in: "$internalServerPemKey" "$internalServerUser"@"$internalServerIP"\033[0m\n"

ssh -i "$internalServerPemKey" "$internalServerUser"@"$internalServerIP" << QUI
 printf "\033[1;33m------------------------------------------------------------------Dopo ssh"
 echo-e "\033[0m" #ripristina i colori
 echo "utente \"$userName\" <--- in="" ---=""> \"$internalServerIP\" <---"
 sudo useradd -m $userName
 dormire 2
 echo "Modifica utente \"$userName\""
 sudo -i-u $userName bash << EOF
 echo "Utente Commutato;"
whoami
 echo "creazione di dir: .ssh"
 mkdir -p .ssh
 echo "cambio di permessi della dir .ssh per 700"
 chmod 700 .ssh
 echo "creazione di un file: .ssh/authorized_keys"
 touch .ssh/authorized_keys
 echo "cambio di permessi di .ssh/authorized_keys a 600"
 chmod 600 .ssh/authorized_keys
 echo "aggiungendo $stringachiave "
 echo "per .ssh/authorized_keys"
 echo '$stringachiave' >> .ssh/authorized_keys
 echo "Contenuto .ssh/authorized_keys"
 cat .ssh/authorized_keys
 printf "\033[1;31mExiting da ---> "$internalServerPemKey" "$internalServerUser"@"$internalServerIP"\033[0m\n"
 #echo "utente Esistente ---> $userName"
EOF
QUI

Creare una coppia di chiavi per l’utente di essere creato. Qui, I ll memorizzare questi tasti in /tmp/

ssh-keygen

Creare una coppia di chiavi

ls /tmp/id_rsa*

Elenco le chiavi che abbiamo creato

Creare un utente con lo script:

Ora andiamo a creare un utente con il comando seguente. È necessario modificare i valori di script con quello valido per te. Eseguire il seguente comando dal tuo sistema linux.

Prima di eseguire lo script, cambia autorizzazioni

chmod 744 provide-access.sh
./provide-access.sh -U ubuntu -K ~/Downloads/howtoforge-test.pem io ec2-15-236-64-128.eu-west-3.compute.amazonaws.com -u rahul -k "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzs60i+fPFEYMbA1w8dLOFK2EAV+vFtlckSU
5+DGxtLHp3smpAxTDkKYJ33bM9Cs6toMDD0hitah6vryrgj4v+Z4EpO6w8kHp3g2Fro5b4X2VX4GWsVdmklkj0kbuhbd2sktx/O2x+wNlxT7cUvr0ugii9FIXlXLLjwLsw47bEunsihwjb+x7u8tfOc00IBzhghCU9DjfGzMNxWdwpWg2gsaorwqat1ygo3laqppxsvn6rkazstj
gSar7bwJsjEtiCb7+of95SIR/lkP/e1hpsbuDUpc94mTAkde88pFPE/799w+YnbUwaj+1Y8e9R1QRjbs9Xh+b2wAgaAlMTPEFh rahul@Rahuls-MacBook-Pro.local"

Qui,

  • -U = ubuntu = Utente con sudo di accesso per effettuare il login all’istanza EC2.
  • -K =~/Downloads/howtoforge-test.pem = Ureate per effettuare il login all’istanza EC2.
  • -I =ec2-15-236-64-128.eu-west-3.compute.amazonaws.com = IP dell’istanza EC2.
  • -u = rahul = Utente creato
  • -k = chiave Pubblica dell’utente per essere creato.

Questi valori variano per voi. Aggiungere i valori validi per voi.

Creare un utente

Si può vedere che l’utente è stato creato.

Ora, è possibile accedere all’istanza EC2 per verificare se l’utente è stato creato o meno.

ssh -i ~/Downloads/howtoforge-test.pem ubuntu@ec2-15-236-64-128.eu-west-3.compute.amazonaws.com
cat /etc/passwd | grep rahul

Controllare se l'utente è creato

Ora è possibile accedere al server utilizzando l’utente, cioè, rahul, che abbiamo appena creato.

Prima di questo, modificare le autorizzazioni della chiave privata utilizzata per l’autenticazione al server.

chmod 400 /tmp/id_rsa.pub
ssh -i /tmp/id_rsa.pub rahul@ec2-15-236-64-128.eu-west-3.compute.amazonaws.com

Cercare di fare il login

Nella schermata qui sopra, si può vedere che siamo stati in grado di accedere al server utilizzando l’utente che abbiamo creato.

Inoltre, controllare la chiave che abbiamo aggiunto per l’utente. Troverete la chiave pubblica si è passati ad uno script è stato aggiunto al server.

Controllare la chiave abbiamo aggiunto

Conclusione

In questo articolo, abbiamo visto lo script per automatizzare il processo di creazione di un utente di Ubuntu istanza EC2 e l’aggiunta di una chiave pubblica ad esso.

Questa automazione può aiutare a ridurre al minimo lo sforzo necessario per creare manualmente gli utenti e aggiungere le chiavi pubbliche di loro.

Piaciuto l'articolo? Condividilo sui social!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp