GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erstellen Sie einen Benutzer auf einer Linux-EC2-Instance auf AWS und fügen ihm mithilfe eines Shell-Skripts einen öffentlichen Schlüssel hinzu

Das Erstellen eines Benutzers und das Hinzufügen eines öffentlichen Schlüssels kann sehr mühsam sein. In diesem Artikel werden wir sehen, wie dieser Prozess mithilfe eines Shell-Skripts automatisiert werden kann, das uns helfen kann, menschliche Fehler zu vermeiden, die auftreten können, wenn wir die Aufgabe manuell ausführen.

Voraussetzungen

  1. Grundlegendes Verständnis von Shell-Skripten.
  2. AWS-Konto (erstellen wenn Sie noch keins haben).
  3. EC2-Instanz mit dem Benutzer mit sudo-Zugriff (Klicken Sie hier, um zu erfahren, wie Sie eine EC2-Instanz erstellen, wenn Sie keine haben oder wenn Sie lernen möchten)

Was werden wir tun

  1. Erstellen Sie ein Skript und ein Paar aus privatem und öffentlichem Schlüssel.
  2. Erstellen Sie einen Benutzer mit dem Skript.

Erstellen Sie ein Skript und ein Paar aus privatem und öffentlichem Schlüssel

Erstellen Sie ein Skript mit dem folgenden Code darin. Den gleichen Code finden Sie in meinem Github-Repo unter folgendem Link.

Github-Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/shell-scripts/aws-ec2-create-user-add-public-key/provide-access.sh
Datei: provide-access.sh
helpFunction(){ echo "" printf "\033[1;32mUsage:$0 -K  -U  -I 
 -u  -k <\"public-key-string-shared-by-the-user\">" echo "" echo -e "\t-K \".pem Schlüssel des Servers, auf dem ein neuer Benutzer erstellt wurde\ "" echo -e "\t-U Benutzername des Servers, auf dem ein neuer Benutzer erstellt wurde" echo -e "\t-I IP des Servers, auf dem ein neuer Benutzer erstellt wurde " echo -e "\t-u Benutzer, der erstellt werden soll auf dem internen Server" echo -e "\t-k \"vom Benutzer gemeinsam genutzter öffentlicher Schlüssel hinzuzufügen\"" echo -e "Öffentlichen Schlüssel in doppelte Anführungszeichen setzen" echo -e "z.B." 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/ZntfkvKzX6e82oYOOLb9QtTu4IO+W560 + afjp1xLOYqWKeEsZycq0iyHX5herNWxorLU3gGnwGSABCb + 62yP3eaESMMHMR91OeDsxeLL41ABANofMROQ8yDjNcYVUxjKWyzNzuJxgnN5KngwkUOWHGbCFmHUsz1WVuWA + rhhk1CPZFywUdsDeGR / DxD + oNKGvaKGIQuDqK1vY5GiLg0N + OvanTPbLper3 / Z5A5d62fRF6 + mensZGsKW543 key-name \ "" echo -e "\ 033 [0m" #Rueck Farbe exit 1 # Beenden Skript nach Hilfe Drucken} während getopts „I:K:U:u:k:" optdo case "$opt" in K ) internalServerPemKey="$OPTARG";; U ) internalServerUser="$OPTARG";; I ) internalServerIP="$OPTARG";; u ) userName="$OPTARG";; k) keyString="$OPTARG";; ? ) Hilfefunktion;; # Hilfefunktion ausgeben, falls Parameter nicht vorhanden ist esacdone# Hilfefunktion ausgeben, falls Parameter leer sindif [ -z "$internalServerIP" ] || [ -z "$internalServerPemKey" ] || [ -z "$internalServerUser" ] || [ -z "$Benutzername" ] || [ -z "$keyString" ]dann printf "\033[1;31m" echo "Einige oder alle Parameter sind leer"; helpFunctionfi# Skript starten, falls alle Parameter korrekt sindprintf "\033[1;33m-------------------------------- ---------------------------------Vor ssh"echo -e "\033[0m" #reset colorecho ". pem-Schlüssel des Servers, auf dem ein neuer Benutzer erstellt wurde:$internalServerPemKey"echo "Benutzername des Servers, auf dem ein neuer Benutzer erstellt wurde:$internalServerUser"echo "IP des Servers, auf dem ein neuer Benutzer erstellt wurde:$internalServerIP"echo "Benutzer, der auf dem internen Server erstellt werden soll:$userName"echo "Public Key-String, der hinzugefügt werden soll, freigegeben vom Benutzer:$keyString"printf "\033[1;31mAnmeldung bei:"$internalServerPemKey" "$internalServerUser "@"$internalServerIP"\033[0m\n"ssh -i "$internalServerPemKey" "$internalServerUser"@"$internalServerIP" < \"$internalServerIP \" <---" sudo useradd -m $userName sleep 2 echo "Ändere den Benutzer zu „$userName\"" sudo -i -u $userName bash <> .ssh/authorized_keys echo "Inhalt von .ssh/authorized_keys" cat .ssh /authorized_keys printf "\033[1;31mExiting from ---> "$internalServerPemKey" "$internalServerUser"@"$internalServerIP"\033[0m\n" #echo "Vorhandener Benutzer ---> $userName"EOFHERE 

Erstellen Sie ein Schlüsselpaar für den zu erstellenden Benutzer. Hier speichere ich diese Schlüssel in /tmp/

ssh-keygen

ls /tmp/id_rsa*

Erstellen Sie einen Benutzer mithilfe des Skripts

Lassen Sie uns nun einen Benutzer mit dem folgenden Befehl erstellen. Sie müssen die Werte im Skript mit den für Sie gültigen ändern. Führen Sie den folgenden Befehl von Ihrem lokalen Linux-System aus.

Bevor Sie das Skript ausführen, ändert es seine Berechtigungen

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]"

Hier,

  • -U =ubuntu =Benutzer mit sudo-Zugriff zum Anmelden bei der EC2-Instanz.
  • -K =~/Downloads/howtoforge-test.pem = Ureate, um sich bei der EC2-Instanz anzumelden.
  • -I =ec2-15-236-64-128.eu-west-3.compute.amazonaws.com = IP der EC2-Instanz.
  • -u =rahul =Zu erstellender Benutzer
  • -k =Öffentlicher Schlüssel des anzulegenden Benutzers.

Diese Werte werden für Sie variieren. Fügen Sie für Sie gültige Werte hinzu.

Sie können sehen, dass der Benutzer erstellt wurde.

Jetzt können Sie sich bei der EC2-Instanz anmelden, um zu prüfen, ob der Benutzer erstellt wurde oder nicht.

ssh -i ~/Downloads/howtoforge-test.pem [E-Mail-geschützt]
cat /etc/passwd | grep rahul

Sie können jetzt versuchen, sich mit dem Benutzer, d. h. rahul, den wir gerade erstellt haben, beim Server anzumelden.

Ändern Sie vorher die Berechtigungen des privaten Schlüssels, der zur Authentifizierung beim Server verwendet werden soll.

chmod 400 /tmp/id_rsa.pub
ssh -i /tmp/id_rsa.pub [E-Mail-geschützt]

Im Screenshot oben sehen Sie, dass wir uns mit dem von uns erstellten Nutzer beim Server anmelden konnten.

Überprüfen Sie auch den Schlüssel, den wir dem Benutzer hinzugefügt haben. Sie werden feststellen, dass der öffentliche Schlüssel, den wir an das Skript übergeben haben, dem Server hinzugefügt wurde.

Schlussfolgerung

In diesem Artikel haben wir das Skript zur Automatisierung des Prozesses zum Erstellen eines Benutzers auf der Ubuntu EC2-Instance und zum Hinzufügen eines öffentlichen Schlüssels gesehen.

Diese Automatisierung kann dazu beitragen, den Aufwand zu minimieren, der erforderlich ist, um Benutzer manuell zu erstellen und ihnen öffentliche Schlüssel hinzuzufügen.


Linux
  1. So vergleichen Sie Zahlen und Zeichenfolgen im Linux-Shell-Skript

  2. Erstellen Sie mit Terraform eine EC2-Instance auf AWS

  3. So erstellen Sie eine RDS-Instance auf AWS mit Terraform

  4. So erstellen und löschen Sie Benutzergruppen in Linux

  5. So erstellen Sie einen Benutzer unter Linux mit Python

Anleitung zum Hinzufügen und Entfernen von Cronjobs von Linux EC2-Instanzen auf AWS mithilfe von Shell-Skripten

So erstellen Sie eine Amazon AWS EC2-Instanz mit Python Boto3

So richten Sie den öffentlichen und privaten SSH-Schlüssel unter Linux ein

So erstellen und führen Sie ein Shell-Skript in Ubuntu 22.04 aus

So erstellen/fügen Sie Benutzer in Linux hinzu

So fügen Sie einen sudo-Benutzer im Linux-System hinzu oder erstellen ihn [Schnellstart]