Ich habe eine Reihe von Benutzern, die mit SSH-Schlüsseln Zugriff auf Konten auf anderen Servern haben. Derzeit habe ich ein Skript, das die öffentlichen ssh-Schlüssel sammelt und an das richtige Konto auf den richtigen Servern verteilt.
Was ich tun möchte, ist, dieses Skript zu veranlassen, zu überprüfen, ob der SSH-Schlüssel eines bestimmten Benutzers eine Passphrase hat, bevor der öffentliche Schlüssel akzeptiert und verteilt wird.
Ich habe eine Reihe von Dingen ausprobiert, wie die Verwendung eines ssh-agent
und, ssh-add
und dann tritt das Problem auf, wenn ssh-add
ich nach einer Passphrase gefragt werde.
Gibt es eine Möglichkeit, eine openssl
Passphrase zu überprüfen, die mit dem Rückkehrcode " 1
Wenn der Schlüssel eine Passphrase hat" leicht fehlschlägt ?
Vielen Dank!
Antworten:
Wenn eine Schlüsseldatei eine Passphrase verwendet, wird das Attribut "Proc-Type:" mit dem angehängten Wort "ENCRYPTED" festgelegt.
Sie können also feststellen, ob eine Schlüsseldatei eine Passphrase verwendet, indem Sie sie durchlaufen
find
undgrep
prüfen, ob sie die Zeichenfolge 'ENCRYPTED' enthält.druckt eine Liste von Dateien mit Passphrasen. Anschließend können Sie diese mit einer Liste aller Schlüsseldateien abgleichen, um diejenigen auszuwählen, die keine Passphrase verwenden. Eine Liste aller Schlüsseldateien erhalten Sie, indem Sie den
-exec
Parameter wie folgt weglassen :quelle
Proc-Type
Header wird trotz Verschlüsselung nicht in die Datei geschrieben.