Ich versuche, .ssh / id_rsa.pub von unserem zentralen Server auf mehrere Server zu kopieren. Ich habe das folgende Skript, das ich normalerweise verwende, um Änderungen auf die verschiedenen Server zu übertragen.
#!/bin/bash
for ip in $(<IPs); do
# Tell the remote server to start bash, but since its
# standard input is not a TTY it will start bash in
# noninteractive mode.
ssh -q "$ip" bash <<-'EOF'
EOF
done
Aber in diesem Fall muss ich den öffentlichen Schlüssel auf dem lokalen Server kategorisieren und diesen dann mehreren Servern hinzufügen. Gibt es eine Möglichkeit, mithilfe des oben genannten Dokumentskripts Folgendes auszuführen?
cat .ssh/id_rsa.pub |ssh tony@0.0.0.0 'cat > .ssh/authorized_keys'
shell-script
ssh
user67186
quelle
quelle
Antworten:
Mit dieser einfachen Schleife können Sie sie automatisieren und auf alle Remote-Server verteilen.
quelle
Hier ist mein einfaches Skript, um ssh-keygen auf mehrere Server zu kopieren, ohne jedes Mal nach dem Passwort zu fragen.
quelle
Die akzeptierte Antwort funktioniert nicht, wenn der öffentliche Schlüssel einer anderen Person auf mehreren Computern gespeichert werden muss. Also habe ich die folgende Lösung gefunden:
cat add-vassal-tc-agents.sh
Dieses Skript fügt den Benutzern in der Liste der Computer den neuen Schlüssel hinzu, sofern die Umgebung, in der es ausgeführt wird, über den Zugriff verfügt.
Beispiel von
tc-agents-list.txt
:quelle
Zum Kopieren Ihres öffentlichen Schlüssels haben Sie etwas in openssh selbst eingebaut. Also anstatt
cat
undssh
benutze dies: -quelle
Sie können dies mit einer einfachen while-Schleife und einer eingebetteten Serverliste wie folgt tun:
Wenn die Liste im Skript enthalten ist, werden separate Datendateien entfernt, die möglicherweise verlegt werden.
quelle
ssh-copy-id
wurde bereits in einigen anderen Antworten vorgeschlagen.Angenommen, Sie haben eine Datei mit der Server-IP-Liste, dem Namen SERVER und nur den IP-Adressen der Server definiert.
Diese for- Schleife funktioniert auch.
quelle