Wie kann ich meinem Schlüsselbund einen privaten Schlüssel hinzufügen?

40

Ich versuche, myRepositoryKeymein Mac-Schlüsselbund-Dienstprogramm so hinzuzufügen . Ich habe diesen Artikel im OpenRSA-Format von Putty exportiert. Wenn ich versuche zu verwenden Import Items, ist die Datei nicht auswählbar. Was muss ich tun, um in meinen Schlüsselbund zu importieren? Benötigt die Datei eine bestimmte Erweiterung?

Casebash
quelle

Antworten:

42

Sie müssen eine .p12Datei erstellen . Dazu benötigen Sie Ihren privaten Schlüssel und ein Zertifikat für diesen Schlüssel. Führen Sie dann Folgendes auf Ihrer Konsole aus:

openssl pkcs12 -export -clcerts -inkey private.key -in certificate.crt -out MyPKCS12.p12 -name "Your Name"

Wo private.keyist Ihr vorhandener privater RSA-Schlüssel, certificate.crtist Ihr vorhandenes Zertifikat und MyPKCS12.p12ist der Name der zu erstellenden Datei. Diese Datei kann dann in Ihren Schlüsselbund importiert werden.

Wenn Sie Ihren Schlüssel für den SSH-Zugriff (SFTP, SCP oder ähnliches) benötigen, muss er nicht in Ihrem Schlüsselbund sein. Kopieren Sie einfach Ihren privaten Schlüssel ~/.ssh/und bearbeiten / erstellen Sie die ~/.ssh/configDatei. Dort würden Sie etwas in diese Richtung setzen:

# replace the host, location of the private key and the remoteUserName
# with valid values.
Host remote.domain.com
    IdentityFile ~/.ssh/private.key
    User remoteUserName
Blödmann
quelle
Was meinst du mit einem Zertifikat für den Schlüssel? Muss ich eine Unterzeichnungsbehörde hinzuziehen?
Casebash
Ja, oder unterschreiben Sie selbst, obwohl ich das nur für den persönlichen Gebrauch empfehlen würde.
Bummzack
1
Nur zu Ihrer Information , der Befehl hat bei mir mit einer .pem-Datei statt einer .crt-Datei für das Zertifikat funktioniert . Ich habe zuerst versucht, die .pem-Datei in eine .crt- Datei zu konvertieren , was fehlgeschlagen ist. Dann habe ich nur die .pem-Datei in dem Befehl ausprobiert, den Sie direkt angezeigt haben, und das hat tatsächlich funktioniert!
Quickshiftin
es hat in meinem Fall eine p12-Datei erstellt, aber mit diesem Fehler "Zertifikate können nicht geladen werden", was bedeutet das?
Umair A.
Sie könnten meinen Job gerettet haben. Ich habe mir darüber stundenlang den Kopf gebrochen.
Sridhar Sarnobat
27

Nun, ich verstehe auch nicht, dass ich "ein Zertifikat für den Schlüssel brauche" ...

Ich mache es einfach ssh-add -K /path/to/private/key.

ssh-addStellen Sie jedoch sicher, dass Sie den integrierten Mac und nicht den Macports verwenden (falls Sie jemals ein Upgrade von OpenSSH benötigen).

Also tu es einfach /usr/bin/ssh-add -K /path/to/private/key.

Hoffentlich hilft das.

Gregory Pakosz
quelle
Richtig: Das integrierte SSH muss den Schlüssel hinzufügen, dann können sowohl das integrierte SSH als auch das MacPorts-SSH ihn verwenden.
Jeremy L
Beachten Sie, dass möglicherweise Folgendes auftritt: "Die Berechtigung %%%% für ... ist zu offen. [...] Dieser private Schlüssel wird ignoriert." Schauen Sie sich diese Antwort an, um das Problem zu beheben.
Luk2302
Hat perfekt funktioniert. Danke!
mmla
5

Ich habe versucht, eine .p12-Datei über die Benutzeroberfläche von Keychain zu importieren, um sie unter Lion unbemerkt zu ignorieren. Der Vollständigkeit halber möchte ich diesen Beitrag in Stephans Blog veröffentlichen

http://www.arlt.eu/blog/2009/12/01/importing-iphone-keys-p12-and-pem-into-snow-leopards-keychain/

Kurz gesagt, dies sollte jedes Mal den Trick machen:

security import priv_key.p12 -k ~/Library/Keychains/login.keychain
security import pub_key.pem -k ~/Library/Keychains/login.keychain
Codehead
quelle
1

Wenn alle Dateien im PEM-Format vorliegen, lautet die private Schlüsseldatei server-key.key und die Zertifikatsdatei server-cert.pem.

# create .p12 formatted file with key and certificate using openssl. 
openssl pkcs12 -export -in server-cert.pem -inkey server-key.key -passout pass:password -out certificate.p12 -name "SCProxy"

# should use -T appPath. -A means this key is accessible for all apps. 
sudo security import certificate.p12 -A -P password -k "/Library/Keychains/System.keychain"
sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" server-cert.pem
karim
quelle
-Tfunktioniert nicht mehr in Sierra stackoverflow.com/questions/39868578/…
Heath Borders