Como posso adicionar uma chave privada ao meu chaveiro?

41

Estou tentando adicionar myRepositoryKeyao meu utilitário de chaves do Mac. Eu exportei este item no formato OpenRSA da Putty. Quando tento usar Import Items, o arquivo não é selecionável. O que preciso fazer para importar para o meu chaveiro? O arquivo precisa de uma extensão específica?

Casebash
fonte

Respostas:

42

Você precisa criar um .p12arquivo. Para fazer isso, você precisa da sua chave privada e de um certificado para essa chave. Em seguida, execute o seguinte no seu console:

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

onde private.keyestá sua chave RSA privada existente, certificate.crté seu certificado existente e MyPKCS12.p12é o nome do arquivo a ser criado. Esse arquivo pode ser importado para o seu chaveiro.

Se você precisar da sua chave para acesso SSH (SFTP, SCP ou similar), ela não precisa estar no seu chaveiro. Simplesmente copie sua chave privada ~/.ssh/e edite / crie o ~/.ssh/configarquivo. Lá você colocaria algo nesse sentido:

# replace the host, location of the private key and the remoteUserName
# with valid values.
Host remote.domain.com
    IdentityFile ~/.ssh/private.key
    User remoteUserName
bummzack
fonte
O que você quer dizer com certificado para a chave? Eu precisaria envolver uma autoridade de assinatura?
Casebash 23/02
Sim, ou assine você mesmo, embora eu não recomende isso para nada além de uso pessoal.
23411 bummzack
1
Apenas um FYI, o comando funcionou para mim usando um .pem em vez de um .crt para o certificado. Primeiro tentei converter o .pem em um .crt , que falhou, depois tentei o .pem no comando que você mostrou diretamente e que realmente funcionou!
quickshiftin
ele criou o arquivo p12 no meu caso, mas com esse erro "não é possível carregar certificados", o que isso significa?
Umair A.
Você pode ter salvo meu trabalho. Eu estava quebrando minha cabeça sobre isso por horas.
Sridhar Sarnobat
28

Bem, eu também não entendo que "preciso de um certificado para a chave" ...

Eu apenas faço ssh-add -K /path/to/private/key.

No entanto, verifique se você está usando o built-in do Mac ssh-adde não o do Macports (se você precisar atualizar o OpenSSH).

Então, apenas faça /usr/bin/ssh-add -K /path/to/private/key.

Espero que ajude.

Gregory Pakosz
fonte
Correto: o SSH embutido deve adicionar a chave, para que o SSH embutido e o MacPorts SSH possam usá-lo.
Jeremy L
Observe que "a permissão %%%% para ... está muito aberta. [...] Essa chave privada será ignorada". Dê uma olhada nesta resposta para corrigir esse problema.
Luk2302 06/07/2015
Funcionou perfeitamente. Obrigado!
mmla 31/10
1

Considerando tudo no formato PEM, o arquivo de chave privada é server-key.key e o arquivo de certificado é 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
fonte
-Tnão funciona mais em Sierra stackoverflow.com/questions/39868578/...
Heath Borders