1.4. Usando chaves SSH armazenadas em um cartão inteligente
O Red Hat Enterprise Linux 8 permite que você use chaves RSA e ECDSA armazenadas em um cartão inteligente em clientes OpenSSH. Use este procedimento para habilitar a autenticação usando um Cartão Smart Card ao invés de usar uma senha.
Pré-requisitos
-
No lado do cliente, o pacote
opensc
está instalado e o serviçopcscd
está funcionando.
Procedimento
Liste todas as chaves fornecidas pelo módulo OpenSC PKCS #11 incluindo seus PKCS #11 URIs e salve a saída para o arquivo keys.pub:
$ ssh-keygen -D pkcs11: > keys.pub $ ssh-keygen -D pkcs11: ssh-rsa AAAAB3NzaC1yc2E...KKZMzcQZzx pkcs11:id=%02;object=SIGN%20pubkey;token=SSH%20key;manufacturer=piv_II?module-path=/usr/lib64/pkcs11/opensc-pkcs11.so ecdsa-sha2-nistp256 AAA...J0hkYnnsM= pkcs11:id=%01;object=PIV%20AUTH%20pubkey;token=SSH%20key;manufacturer=piv_II?module-path=/usr/lib64/pkcs11/opensc-pkcs11.so
Para permitir a autenticação usando um cartão inteligente em um servidor remoto (example.com), transfira a chave pública para o servidor remoto. Use o comando
ssh-copy-id
com keys.pub criado na etapa anterior:$ ssh-copy-id -f -i keys.pub username@example.com
Para conectar-se a example.com usando a chave ECDSA da saída do comando
ssh-keygen -D
no passo 1, você pode usar apenas um subconjunto do URI, que faz referência única à sua chave, por exemplo:$ ssh -i "pkcs11:id=%01?module-path=/usr/lib64/pkcs11/opensc-pkcs11.so" example.com Enter PIN for 'SSH key': [example.com] $
Você pode usar a mesma cadeia URI no arquivo
~/.ssh/config
para tornar a configuração permanente:$ cat ~/.ssh/config IdentityFile "pkcs11:id=%01?module-path=/usr/lib64/pkcs11/opensc-pkcs11.so" $ ssh example.com Enter PIN for 'SSH key': [example.com] $
Como o OpenSSH usa a embalagem
p11-kit-proxy
e o módulo OpenSC PKCS #11 está registrado no Kit PKCS #11, você pode simplificar os comandos anteriores:$ ssh -i "pkcs11:id=%01" example.com Enter PIN for 'SSH key': [example.com] $
Se você pular a parte id=
de um PKCS #11 URI, o OpenSSH carrega todas as chaves que estão disponíveis no módulo proxy. Isto pode reduzir a quantidade de digitação necessária:
$ ssh -i pkcs11: example.com
Enter PIN for 'SSH key':
[example.com] $
Recursos adicionais
- Fedora 28: Melhor suporte a cartões inteligentes no OpenSSH
-
p11-kit(8)
página do homem -
ssh(1)
página do homem -
ssh-keygen(1)
página do homem -
opensc.conf(5)
página do homem -
pcscd(8)
página do homem