Força o uso de uma chave gpg como uma chave ssh para um determinado servidor

1

Eu configurei o ssh para usar o GPG como meu ssh-agent e, se eu remover a pasta ~/.ssh , eu posso usar ssh no meu servidor usando a minha chave gpg. No entanto, minha pasta ~/.ssh tem mais de uma dúzia de chaves ssh diferentes, e se eu tentar ssh quando estiver lá, recebo um erro de permissão negada porque meu cliente ssh está oferecendo todas as chaves privadas no diretório antes de tentar chaves no gpg ssh-agent.

Com chaves ssh regulares, eu uso apenas o IdentityFile config no meu arquivo ~/.ssh/config , mas não posso fazer isso porque minha identidade é um gpg cardno. Estou confuso porque o ssh está preferindo os arquivos de chaves sobre o agente. Existe alguma maneira de forçar o ssh a usar o agente em vez dos arquivos? Ou melhor ainda, existe alguma maneira de especificar no arquivo ~/.ssh/config que a chave gpg deve ser usada para um determinado servidor?

Confirmei que ssh-agent não está em execução e que gpg-agent está em execução e ssh-add -L mostra minha chave gpg, juntamente com uma única chave privada de estilo ssh.

    
por Mike Dacre 10.04.2018 / 07:35

2 respostas

2

man ssh_config diz sobre o IdentityFile:

Additionally, any identities represented by the authentication agent will be used for authentication.

Para que você defina IdentityFile /dev/null , essa autenticação falhará e, em seguida, o ssh continuará tentando as chaves no seu agente.

    
por 10.04.2018 / 11:06
0

Se a sua chave estiver armazenada em algum tipo de hardware compatível com pkcs11, como um cartão inteligente, você poderá usar o ssh diretamente para acessá-lo.

CLI

 -I pkcs11
         Specify the PKCS#11 shared library ssh should use to communicate with a PKCS#11 token providing the user's private RSA key.

Para que você possa usar use ssh -I /path/to/opensc-pkcs11.so , onde opensc-pkcs11.so é a sua biblioteca de cartão inteligente.

Agente

Se você quiser usar um ssh-agent, também pode adicionar chaves de cartão inteligente a ele usando ssh-add -s /path/to/opensc-pkcs11.so

Config

E, finalmente, se você quiser usar o arquivo de configuração, especifique um dispositivo PKCS11 para usar PKCS11Provider

 PKCS11Provider
         Specifies which PKCS#11 provider to use.  The argument to this keyword is the PKCS#11 shared library ssh(1) should use to communi-
         cate with a PKCS#11 token providing the user's private RSA key.
    
por 11.04.2018 / 22:49