Setup Kennwortloses SSH -Login für mehrere Remote -Server mithilfe von Skript einrichten

Setup Kennwortloses SSH -Login für mehrere Remote -Server mithilfe von Skript einrichten

Die SSH-Basis-basierte Authentifizierung (auch als Authentifizierung im öffentlichen Key bezeichnet) ermöglicht eine Authentifizierung ohne Passwort und ist eine sicherere und viel bessere Lösung als Kennwortauthentifizierung. Ein wesentlicher Vorteil des SSH-Kennwortloses, geschweige denn die Sicherheit ist, dass die Automatisierung verschiedener Arten von Cross-Server-Prozessen die Automatisierung ermöglicht.

Verwandte Lesen: So sichern und Harden OpenSSH Server sichern und Harden erhalten

In diesem Artikel werden wir demonstrieren, wie Sie ein SSH -Schlüsselpaar erstellen und den öffentlichen Schlüssel zu mehreren Remote -Linux -Hosts gleichzeitig mit einem Shell -Skript kopieren.

Erstellen Sie einen neuen SSH -Schlüssel unter Linux

Generieren Sie zunächst das SSH -Schlüsselpaar (den privaten/Identitätstast ssh-keygen Befehl wie folgt:

# ssh-keygen 
Generieren Sie SSH -Schlüssel unter Linux

Erstellen Sie ein Shell -Skript für Mulitple Remote Logins

Erstellen Sie als Nächstes ein Shell -Skript, das beim Kopieren eines öffentlichen Schlüssels auf mehrere Remote -Linux.

# vim ~/.Bin/SSH-Kopie.Sch 

Kopieren und fügen Sie den folgenden Code in die Datei ein (ersetzen Sie die folgenden Variablen entsprechend NUTZERNAME - der Benutzername, mit dem man sich verbinden kann, Host_file - Eine Datei, die die Liste der Hostnamen oder IP -Adressen enthält, und ERROR_FILE - Eine Datei zum Speichern von SSH -Befehlsfehlern).

#!/Bin/Bash NUTZERNAME= "root" Host_file= "/root/hosts" ERROR_FILE= "/tmp/ssh-copy_error.txt "public_key_file =" $ 1 "if [ ! -f $ public_key_file]; dann echo "Datei '$ public_key_file' nicht gefunden!"Beenden Sie 1 fi, wenn [ ! -f $ host_file]; dann echo "Datei '$ host_file' nicht gefunden!"Exit 2 Fi für IP in 'Cat $ host_file'; do ssh-copy-id -i $ public_key_file [E-Mail geschützt] $ IP 2> $ erroms_file result = $? wenn [$ result -eq 0]; dann echo "" echo "öffentlicher Schlüssel erfolgreich auf $ ip" echo "" else echo "$ (cat $ erroms_file)" echo exit 3 fi echo "" fertig 

Speichern Sie die Datei und schließen Sie sie.

Dann machen Sie das Skript mit dem ausführbar Chmod Befehl wie gezeigt.

# CHMOD +X SSH-COPY.Sch 

Jetzt laufen SSH-Kopie.Sch Skript und geben Sie Ihre öffentliche Schlüsseldatei als erstes Argument an, wie im Screenshot gezeigt:

# ./SSH-Kopie.sh /root /.ssh/prod-rsa.Pub 
Führen Sie das SSH -Skript aus

Als nächstes verwenden Sie SSH-Agent Um Ihre Schlüssel zu verwalten, die Ihren entschlüsselten privaten Schlüssel im Speicher hält und sie verwendet, um sich Anmeldungen zu authentifizieren. Nach dem Start der SSH-Agent, Fügen Sie Ihren privaten Schlüssel wie folgt hinzu:

# eval "$ (ssh-Agent -s)" # ssh-add ~/.ssh/prod_rsa 
SSH Agent starten

Melden Sie sich auf dem Remote -Linux -Server ohne Kennwort an

Jetzt können Sie sich bei einem Ihrer Remote -Hosts anmelden, ohne ein Kennwort für die SSH -Benutzerauthentifizierung bereitzustellen. Auf diese Weise können Sie Cross-Server-Prozesse automatisieren.

# SSH [E -Mail geschützt] 
SSH -passwortlos Anmeldung

Das war alles, was wir für dich hatten! Wenn Sie einen Beitrag zum speziell zur Verbesserung des Shell -Skripts leisten, teilen Sie uns das Feedback -Formular unten mit.