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
- Základní porozumění skriptům Shell.
- Účet AWS (vytvořte, pokud jej nemáte).
- 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
- Vytvořte skript a pár soukromých a veřejných klíčů.
- 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.pubssh -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.
Jak otestovat rychlost načítání webu v Linuxu Co je Cert-Manager a jak nastavit Cert-Manager pro certifikáty SSL v Kubernetes Cluster na AWS pomocí HelmLinux