Setup Kennwortloses SSH -Login für mehrere Remote -Server mithilfe von Skript einrichten
- 1140
- 324
- Ilja Köpernick
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 erhaltenIn 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-keygenGenerieren 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.PubFü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_rsaSSH 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.
- « 9 Nützliche Befehle, um CPU -Informationen unter Linux zu erhalten
- So wechseln Sie (SU) auf ein anderes Benutzerkonto ohne Passwort »