GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit uživatele v instanci Linux EC2 na AWS a přidat k němu veřejný klíč pomocí skriptu shell

Vytvoření uživatele a přidání veřejného klíče k němu může být velmi zdlouhavé. V tomto článku uvidíme, jak lze tento proces automatizovat pomocí skriptu shellu, který nám může pomoci vyhnout se lidským chybám, ke kterým může dojít, pokud úkol provedeme ručně.

Předpoklady

  1. Základní porozumění skriptům Shell.
  2. Účet AWS (vytvořte, pokud jej nemáte).
  3. Instance EC2 s uživatelem, který má přístup sudo (kliknutím sem se dozvíte, jak vytvořit instanci EC2, pokud žádnou nemáte nebo pokud se chcete naučit)

Co uděláme

  1. Vytvořte skript a pár soukromých a veřejných klíčů.
  2. Vytvořte uživatele pomocí skriptu.

Vytvořte skript a pár soukromých a veřejných klíčů

Vytvořte skript s následujícím kódem. Stejný kód najdete na mém úložišti Github na následujícím odkazu.

Odkaz na Github: https://github.com/shivalkarrahul/DevOps/blob/master/aws/shell-scripts/aws-ec2-create-user-add-public-key/provide-access.sh
Soubor: provide-access.sh
helpFunction(){ echo "" printf "\033[1;32mUsage:$0 -K  -U  -I 
 -u  -k <\"řetězec-veřejného-klíče-sdílený-uživatelem\">" echo "" echo -e "\t-K \".pem klíč serveru, na kterém byl vytvořen nový uživatel\ "" echo -e "\t-U Uživatelské jméno serveru, na kterém byl vytvořen nový uživatel" echo -e "\t-I IP serveru, na kterém byl vytvořen nový uživatel " echo -e "\t-u uživatel, který má být vytvořen na interním serveru" echo -e "\t-k \"řetězec veřejného klíče, který má být přidán sdílený uživatelem\"" echo -e "Umístit veřejný klíč do uvozovek" echo -e "např. echo "./provide-access.sh -U ubuntu -K /Users/cloudcover/Documents/Rahul/access/rahuls.pem -I 192.168.134.100 -u rahul -k \"ssh-rsa Z1rbx6/F/Zntf842Wot5TzX6e + afjp1xLOYqWKeEsZycq0iyHX5herNWxorLU3gGnwGSABCb + 62yP3eaESMMHMR91OeDsxeLL41ABANofMROQ8yDjNcYVUxjKWyzNzuJxgnN5KngwkUOWHGbCFmHUsz1WVuWA + rhhk1CPZFywUdsDeGR / dXD + oNKGvaKGIQuDqK1vY5GiLg0N + OvanTPbLper3 / Z5A5d62fRF6 + mensZGsKW543 key-name \ "" echo -e "\ 033 [0m" #reset barva exit 1 # Exit script po vytištění pomoc} zatímco getopts „I:K:U:u:k:" optdo case "$opt" v K ) internalServerPemKey="$OPTARG";; U ) internalServerUser="$OPTARG";; I ) internalServerIP="$OPTARG";; u ) userName="$OPTARG";; k ) keyString="$OPTARG";; ? ) helpFunction;; # Tisk funkce nápovědy v případě, že parametr neexistuje esacdone# Tisk funkce nápovědy v případě, že jsou parametry prázdnéif [ -z "$internalServerIP" ] || [ -z "$internalServerPemKey" ] || [ -z "$internalServerUser" ] || [ -z "$userName" ] || [ -z "$keyString" ]potom printf "\033[1;31m" echo "Některé nebo všechny parametry jsou prázdné"; helpFunctionfi# Spusťte skript v případě, že jsou všechny parametry správnéprintf "\033[1;33m--------------------------------- ---------------------------------Před ssh"echo -e "\033[0m" #reset colorecho ". pem klíč serveru, na kterém byl vytvořen nový uživatel:$internalServerPemKey"echo "Uživatelské jméno serveru, na kterém byl vytvořen nový uživatel:$internalServerUser"echo "IP serveru, na kterém byl vytvořen nový uživatel:$internalServerIP"echo "uživatel, který bude vytvořen na interním serveru:$userName"echo "řetězec veřejného klíče, který bude přidán sdílený uživatelem:$keyString"printf "\033[1;31mPřihlášení do:"$internalServerPemKey" "$internalServerUser "@"$internalServerIP"\033[0m\n"ssh -i "$internalServerPemKey" "$internalServerUser"@"$internalServerIP" < \"$internalServerIP \" <---" sudo useradd -m $userName spánek 2 echo "Změna uživatele na \"$userName\"" sudo -i -u $userName bash <> .ssh/authorized_keys echo "Obsah .ssh/authorized" .ssh/authorized_keys /authorized_keys printf "\033[1;31mExiting from ---> "$internalServerPemKey" "$internalServerUser"@"$internalServerIP"\033[0m\n" #echo "Stávající uživatel ---> $userName"EOFHERE 

Vytvořte pár klíčů pro uživatele, který má být vytvořen. Zde tyto klíče uložím do /tmp/

ssh-keygen

ls /tmp/id_rsa*

Vytvoření uživatele pomocí skriptu

Nyní vytvořte uživatele pomocí následujícího příkazu. Musíte změnit hodnoty ve skriptu na ty, které jsou platné pro vás. Spusťte následující příkaz z místního linuxového systému.

Před spuštěním skriptu změňte jeho oprávnění

chmod 744 provide-access.sh
./provide-access.sh -U ubuntu -K ~/Downloads/howtoforge-test.pem -I 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 [email protected]"

Tady,

  • -U =ubuntu =Uživatel s přístupem sudo pro přihlášení do instance EC2.
  • -K =~/Downloads/howtoforge-test.pem = Ureate pro přihlášení k instanci EC2.
  • -I =ec2-15-236-64-128.eu-west-3.compute.amazonaws.com = IP instance EC2.
  • -u =rahul =Uživatel, který má být vytvořen
  • -k =Veřejný klíč uživatele, který má být vytvořen.

Tyto hodnoty se pro vás budou lišit. Přidejte hodnoty platné pro vás.

Můžete vidět, že uživatel byl vytvořen.

Nyní se můžete přihlásit k instanci EC2 a zkontrolovat, zda byl uživatel vytvořen nebo ne.

ssh -i ~/Downloads/howtoforge-test.pem [e-mail chráněný]
cat /etc/passwd | grep rahul

Nyní se můžete pokusit přihlásit na server pomocí uživatele, tj. rahul, kterého jsme právě vytvořili.

Předtím změňte oprávnění soukromého klíče, který se má použít k ověření na serveru.

chmod 400 /tmp/id_rsa.pub
ssh -i /tmp/id_rsa.pub [chráněno e-mailem]

Na výše uvedeném snímku obrazovky můžete vidět, že se nám podařilo přihlásit k serveru pomocí uživatele, kterého jsme vytvořili.

Zkontrolujte také klíč, který jsme přidali uživateli. Zjistíte, že veřejný klíč, který jsme předali skriptu, byl přidán na server.

Závěr

V tomto článku jsme viděli skript pro automatizaci procesu vytváření uživatele v instanci Ubuntu EC2 a přidání veřejného klíče k němu.

Tato automatizace může pomoci minimalizovat úsilí potřebné k ručnímu vytváření uživatelů a přidávání veřejných klíčů k nim.


Linux
  1. Jak porovnávat čísla a řetězce ve skriptu Linux Shell

  2. Jak vytvořit uživatele v linuxu pomocí pythonu

  3. Jak zkontrolovat, zda skupina existuje, a přidat, pokud ne, v Linux Shell Script

  1. Vytvořte instanci EC2 na AWS pomocí Terraform

  2. Jak vytvořit instanci RDS na AWS pomocí Terraform

  3. Jak vytvořit (a publikovat) klíč PGP v systému Linux pomocí GUI

  1. Jak nastavit/vytvořit proměnné prostředí a prostředí v Linuxu

  2. Jak vytvořit a odstranit uživatelskou skupinu v Linuxu

  3. Jak vytvořit uživatele Linuxu pomocí Ansible