Wie installiere ich ein SSH-Zertifikat auf >400 Servern?

Wie installiere ich ein SSH-Zertifikat auf >400 Servern?

Um bei jeder Aktion auf einem dieser Server kein Kennwort eingeben zu müssen, muss ich mein SSH-Zertifikat auf den Remote-Server hochladen:

ssh-copy-id CptBartender@remote

Jetzt ... muss ich das Zertifikat auf über 400 Server hochladen und versuche, eine Möglichkeit zu finden, mein Passwort nicht so oft einzugeben/einzufügen.

Die Frage ist: Wie kann ich dies unter Windows (mit MinGW) automatisieren? Cygwin ist höchstwahrscheinlich keine Option, da es sich hinter der großen Corpo-Firewall aus der Hölle zu befinden scheint.

Bisher habe ich:

  1. erstellte ein Skript, das alle Remote-Geräte durchläuft, aber für jedes davon nach einem Passwort fragt
  2. habe versucht, das Passwort yesohne Erfolg weiterzugeben
  3. habe darüber gelesen expect, konnte aber keinen Weg finden, es auf MinGW zum Laufen zu bringen
  4. Lesen Sie mehr über sshpass- dasselbe wieexpect

Ich habe darüber nachgedacht AutoIt, aber es muss einen besseren Weg geben ...

Antwort1

PuTTY plinkkann das Passwort als Befehlszeilenparameter akzeptieren. Es gibt kein direktes Äquivalent zu ssh-copy-id, aber das lässt sich leicht per Skript einprogrammieren, z. B. indem man die Befehle manuell ausführt ...

plink foo@bar -pw baz "mkdir -p ~/.ssh && echo 'ssh-ed25519 AAAA...' >> ~/.ssh/authorized_keys"

...oder indem Sie die Datei mit hochladen pscp.


Und wenn expectes unter Windows nicht funktioniert, können Sie es dann nicht auf einem dieser 400 Linux-Server ausführen?

(Angesichts der Zahlen sollten Sie vielleicht auch in Betracht ziehen, die Schlüssel aus LDAP zu ziehen oder AD/Kerberos zu verwenden? Neuere OpenSSH-Versionen verfügen über Hooks für die LDAP-Integration, ohne dass Patches von Drittanbietern mehr erforderlich sind.)

Antwort2

Sie können nach dem oben erwähnten Putty-Plink-Tool suchen. Oder Sie können in Zukunft über die Verwendung eines der Konfigurationsmanagementsysteme wie Puppet, Ansible oder Chef nachdenken. Mit jedem dieser Systeme können Sie im Handumdrehen ein Zertifikat zu allen Ihren Servern hinzufügen.

Ich denke, Sie sollten ernsthaft darüber nachdenken, wenn Sie nach Ihren Servernummern suchen. Sie können für die meisten routinemäßigen Serververwaltungsaufgaben verwendet werden, einschließlich Benutzerverwaltung, Datei- und Verzeichnisverwaltung und Software.

verwandte Informationen