Jak mogę dodać klucz prywatny do mojego pęku kluczy?

40

Próbuję dodać myRepositoryKeydo mojego narzędzia do pęku kluczy Mac tak. Wyeksportowałem ten produkt w formacie OpenRSA z Putty. Kiedy próbuję użyć Import Items, pliku nie można wybrać. Co muszę zrobić, aby zaimportować do mojego pęku kluczy? Czy plik wymaga określonego rozszerzenia?

Casebash
źródło

Odpowiedzi:

42

Musisz utworzyć .p12plik. Aby to zrobić, potrzebujesz klucza prywatnego i certyfikatu dla tego klucza. Następnie uruchom następujące polecenie na konsoli:

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

gdzie private.keyjest twój obecny prywatny klucz RSA, certificate.crtto twój istniejący certyfikat i MyPKCS12.p12nazwa pliku do utworzenia. Ten plik można następnie zaimportować do pęku kluczy.

Jeśli potrzebujesz klucza dostępu SSH (SFTP, SCP lub podobny), nie musi on znajdować się w pęku kluczy. Po prostu skopiuj swój klucz prywatny ~/.ssh/i edytuj / utwórz ~/.ssh/configplik. Tam umieściłbyś coś według tych zasad:

# replace the host, location of the private key and the remoteUserName
# with valid values.
Host remote.domain.com
    IdentityFile ~/.ssh/private.key
    User remoteUserName
grzmot
źródło
Co rozumiesz przez certyfikat dla klucza? Czy musiałbym zaangażować organ podpisujący?
Casebash
Tak, lub podpisz jeden, chociaż nie polecam tego do niczego innego niż na własny użytek.
bummzack
1
Po prostu FYI, polecenie działało dla mnie przy użyciu .pem zamiast .crt dla certyfikatu. Najpierw próbowałem przekonwertować .pem na .crt , co nie powiodło się, a potem po prostu spróbowałem .pem w poleceniu, które pokazałeś bezpośrednio i które faktycznie działało!
szybka zmiana
w moim przypadku utworzono plik p12, ale z tym błędem „nie można załadować certyfikatów”, co to znaczy?
Umair A.,
Mogłeś uratować moją pracę. Godziłem się nad tym przez wiele godzin.
Sridhar Sarnobat
27

Nie rozumiem, że „potrzebuję certyfikatu klucza”…

Po prostu tak ssh-add -K /path/to/private/key.

Jednak upewnij się, że korzystasz z wbudowanego Maca, ssh-adda nie Macports (jeśli kiedykolwiek będziesz potrzebował zaktualizować OpenSSH).

Więc po prostu zrób /usr/bin/ssh-add -K /path/to/private/key.

Mam nadzieję, że to pomaga.

Grzegorz Pakosz
źródło
Prawidłowo: wbudowany SSH musi dodać klucz, wówczas zarówno wbudowany SSH, jak i MacPorts SSH mogą go użyć.
Jeremy L,
Pamiętaj, że możesz napotkać, że „Zezwolenie %%%% na ... są zbyt otwarte. [...] Ten klucz prywatny zostanie zignorowany.” Spójrz na tę odpowiedź, aby rozwiązać ten problem.
luk2302
Działał idealnie. Dziękuję Ci!
mmla
5

Próbowałem zaimportować plik .p12 przy użyciu graficznego interfejsu użytkownika pęku kluczy, aby po cichu zignorować go w programie Lion. Więc dla kompletności chciałbym ten post na blogu Stephana

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

Krótko mówiąc, powinno to załatwić sprawę za każdym razem:

security import priv_key.p12 -k ~/Library/Keychains/login.keychain
security import pub_key.pem -k ~/Library/Keychains/login.keychain
kodhead
źródło
1

Biorąc pod uwagę wszystko w formacie PEM, plik klucza prywatnego to server-key.key, a plik certyfikatu to 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
źródło
-Tnie działa już w Sierra stackoverflow.com/questions/39868578/…
Heath Borders