Einige meiner Linux- und FreeBSD-Systeme haben Dutzende Benutzer. Die Mitarbeiter verwenden diese "ssh gateway" -Knoten, um SSH auf andere interne Server zu übertragen.
Wir sind besorgt, dass einige dieser Personen einen unverschlüsselten privaten SSH-Schlüssel verwenden (Ein Schlüssel ohne Passphrase . Dies ist schlecht , da ein Cracker, falls er jemals Zugriff auf sein Konto auf diesem Computer erhalten sollte, den privaten Schlüssel stehlen und nun Zugriff haben könnte Aus Sicherheitsgründen müssen alle Benutzer ihre privaten SSH-Schlüssel mit einer Passphrase verschlüsseln.
Wie kann ich feststellen, ob ein privater Schlüssel nicht verschlüsselt ist (z. B. enthält er keine Passphrase)? Gibt es eine andere Methode für einen ASCII-geschützten Schlüssel als für einen nicht-ASCII-geschützten Schlüssel?
Aktualisieren:
Nehmen Sie zur Verdeutlichung an, dass ich Superuser-Zugriff auf dem Computer habe und die privaten Schlüssel aller Benutzer lesen kann.
Antworten:
Nun, private OpenSSH-Schlüssel mit leeren Passphrasen werden tatsächlich nicht verschlüsselt.
Verschlüsselte private Schlüssel werden in der privaten Schlüsseldatei als solche deklariert. Zum Beispiel:
Also sowas wie
sollte den Trick machen.
quelle
-L
Flag listet nur Dateinamen auf, die nicht mit dem Muster übereinstimmen. Diese Antwort ist also für sich genommen richtig.Ich habe mich darum gekümmert und nie eine befriedigende Antwort gefunden, aber ich habe es geschafft, eine zu konstruieren, also ...
Beachten Sie, dass dadurch die Datei aktualisiert wird, wenn sie funktioniert. Wenn Sie also versuchen, von den Benutzern, deren Schlüssel Sie testen, nicht bemerkt zu werden, möchten Sie möglicherweise zuerst den Schlüssel kopieren. OTOH, da Sie Ihren Benutzer gerade mit einem kennwortlosen Schlüssel abgefangen haben, ist es Ihnen vielleicht egal, ob sie es bemerken. : D
quelle
-N ''
stattdessen, damit die Passphrase immer unverändert bleibt?Wenn Sie Zugriff auf den privaten Schlüssel haben, können Sie ihn ohne Passphrase verwenden, um sich gegenüber dem öffentlichen Schlüssel zu authentifizieren. Wenn dies funktioniert, wissen Sie, dass es keine Passphrase hat. Wenn dies der Fall wäre, würden Sie eine Fehlermeldung erhalten.
Wenn Sie keinen Zugriff auf den privaten Schlüssel haben, können Sie dies wahrscheinlich nicht feststellen. Die Passphrase dient zum "Entsperren" des privaten Schlüssels, sie hat keine Funktion in Bezug auf den öffentlichen Schlüssel.
In der Tat würde dies das System weniger sicher machen. Man könnte den öffentlichen Schlüssel verwenden, der verfügbar ist, um Brute Force oder andere Angriffe zu starten, die versuchen, die Passphrase zu knacken.
quelle