Auswahl des von OSX ssh-keygen verwendeten Verschlüsselungsalgorithmus

7

Ich habe mehrere Benutzer, die SmartCVS unter OSX verwenden, um mit unserem CVS-Repository zu interagieren. Wir verwenden die cvs :ext:(SSH2) -Methode, um auf das Repository zuzugreifen, das auf einem Remote-Linux-System gespeichert ist. Wir verwenden die SSH-Schlüsselauthentifizierung und verlangen, dass Benutzer ihre privaten Schlüssel mit einer Passphrase verschlüsseln.

Die mit OSX AES-128-CBCgelieferte Version von ssh-keygen verwendet zum Verschlüsseln privater Schlüssel, und anscheinend unterstützt die von SmartCVS verwendete SSH-Bibliothek die Entschlüsselung dieser Verschlüsselung nicht, da sie einen Fehler auslöst. Wenn ich unter Windows mit PuTTYgen einen Schlüssel generiere und diesen Schlüssel auf OSX verschiebe, funktioniert alles einwandfrei. PuTTYgen (und die meisten Versionen von ssh-keygen unter Linux) verwenden die DES-EDE3-CBCVerschlüsselung, die SmartCVS problemlos entschlüsseln kann.

Meine Frage lautet also: Gibt es eine Möglichkeit, ssh-keygen mitzuteilen, welche Verschlüsselung beim Verschlüsseln des privaten Schlüssels verwendet werden soll? Die ssh-keygen(1)Manpage unter OSX sagt nichts darüber aus, wie der Verschlüsselungstyp festgelegt werden kann, aber ich hoffe, dass es nach der Generierung eine andere Möglichkeit gibt, in einen anderen Verschlüsselungstyp zu konvertieren.

EEAA
quelle
Oh je, Sie verwenden immer noch CVS? Holen Sie sich so schnell wie möglich von diesem heruntergekommenen alten Mist! CVS war immer fast unbrauchbar und es wurden in den letzten 10 Jahren weitaus bessere Alternativen entwickelt. GIT ist ein Glücksfall und sogar SVN ist millionenfach besser als CVS.
Psusi
@psusi - Vertrau mir, ich weiß. Leider ist dieser außerhalb meiner Kontrolle. Wir verwenden SVN und Git ausgiebig an anderer Stelle.
EEAA

Antworten:

8

Ich bin nicht sicher, wie ich ssh-keygen dazu bringen soll, einen Schlüssel mit einem bestimmten Encyprption-Algorithmus zu erstellen.

Sie können Ihren Schlüssel direkt mit OpenSSL generieren.

# create 1024 bit rsa and encrypt with des3 
#    make sure you set your umask or chmod this so that it is 0600, 
#    or else ssh will refuse to use it.
openssl genrsa -des3 -out .ssh/id_rsa 1024
# export an ssh public key
ssh-keygen -y -f .ssh/id_rsa > .ssh/id_rsa.pub

Sie können die Verschlüsselung eines vorhandenen Schlüssels auch nachträglich mit OpenSSL konvertieren.

openssl rsa -in id_rsa -out newkey_id_rsa -des3

Eine Liste der verschiedenen Optionen finden Sie unter: genrsa (1) , rsa (1) und ssh-keygen (1) .

Zoredache
quelle
Beide Beispiele wurden getestet und erstellten gültige Arbeitsschlüssel auf meiner Debian Squeeze-Box mit Standardversionen von ssh / openssl.
Zoredache
Bingo - dies funktioniert sowohl unter Linux als auch unter opensslOSX. Vielen Dank!
EEAA