Ich möchte ein Skript erstellen, das einfach ausgeführt wird ssh-keygen -t rsa
. Aber wie geht man dreimal hinein?
101
Versuchen:
ssh-keygen -t rsa -N "" -f my.key
-N ""
weist es an, eine leere Passphrase zu verwenden (das gleiche wie zwei der Eingaben in einem interaktiven Skript)
-f my.key
Weist es an, den Schlüssel darin zu speichern my.key
( nach Belieben ändern).
Das Ganze läuft, ohne dass Sie Eingabetasten eingeben müssen :)
So senden Sie Eingaben in ein interaktives Skript:
echo -e "\n\n\n" | ssh-keygen -t rsa
ssh-keygen
fallen gelassen worden - hast du das wieder hinzugefügt? {bearbeitet} Außerdem - Sie können das Skript nicht mehr als einmal ausführen - werden die Fragen geändert, um zu bestätigen, dass Sie die vorhandene_rsa
Schlüsseldatei überschreiben möchten (daher müssen ay oder n angegeben werden)yes ""
anstelle von empfehlenecho -e "\n\n\n"
(yes
gibt jedes Argument aus, das [oder "y" standardmäßig] im Unendlichen angegeben wird - perfekt für Situationen, in denen nur eine "Ja" -Antwort auf die von einem Programm angeforderten Antworten gegeben werden soll).yes
ist kürzer und solltessh-keygen
jemals eine Frage hinzufügen, die automatisch auch beantwortet wird. :)Eine Version mit Passphrase lautet:
Quelle ist http://linux.die.net/man/1/ssh-keygen
quelle
Stimmen Sie Michel Marro zu, außer dass es noch etwas mehr braucht: Wenn die Datei bereits vorhanden ist, wird sie weiterhin interaktiv sein und fragen, ob sie überschrieben werden muss.
Verwenden Sie die Antwort auf diese Frage .
Die Umleitung auf null ist erforderlich, um die Überschreibungsnachricht zum Schweigen zu bringen.
quelle
quelle
echo -e
etwas anderes als-e
überhaupt ausgegeben wird , was nicht überallssh-keygen
verfügbar ist).ssh-keygen -N ''
als Teil eines automatisierten Installationsvorgangs und es liest überhaupt nicht stdin, so dass es nicht notwendig ist, dieecho
( irgendeineecho
Variante) darin zu leiten. (Zugegeben, ich glaube, stdin ist/dev/null
in meinem Produktionsanwendungsfall damit verbunden; es könnte durchaus ein anderes Verhalten geben, wenn es an ein TTY angehängt wird, aber die bessere Antwort ist</dev/null
eher alsecho ... |
)$ ssh-keygen -t rsa -N '' Generating public/private rsa key pair. Enter file in which to save the key (/home/dlyons/.ssh/id_rsa):
Es wird empfohlen, ed25519 für Sicherheit und Leistung zu verwenden.
Hier
-o
OpenSSH-Schlüsselformat anstelle älterer PEM (benötigt OpenSSH 6.5+)-a
Anzahl der Primalitätstests beim Screening von DH-GEX-Kandidaten-t
Schlüsseltyp (ed25519, RSA, DSA usw.)-f /mypath/bla
Der Pfad und Name der Ausgabedatei-N ""
Verwenden Sie eine leere Passphaseund
yes "y"
für keine Interaktion.Es werden zwei Dateien generiert
wo die
bla
Datei privat undbla.pub
öffentlich ist.quelle