
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:
- erstellte ein Skript, das alle Remote-Geräte durchläuft, aber für jedes davon nach einem Passwort fragt
- habe versucht, das Passwort
yes
ohne Erfolg weiterzugeben - habe darüber gelesen
expect
, konnte aber keinen Weg finden, es auf MinGW zum Laufen zu bringen - Lesen Sie mehr über
sshpass
- dasselbe wieexpect
Ich habe darüber nachgedacht AutoIt
, aber es muss einen besseren Weg geben ...
Antwort1
PuTTY plink
kann 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 expect
es 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.