Gostaria de poder fazer o SSH para minha máquina usando um Gemalto .NET Smart Card como método de autenticação. Como isso pode ser feito em uma máquina Fedora 13 (ou estilo Red Hat genérico)?
Estes são os passos que acho necessários:
- Certificado de provisão para o cartão inteligente (e possivelmente uma CA para emiti-lo?)
- Obter o certificado no cartão inteligente
- Configure o servidor SSH para permitir a autenticação de cartão inteligente e configure-o para usar um certificado / CA específico
- Um cliente SSH com suporte para cartão inteligente (pontos extras para um grátis baseado no Windows)
Eu recomendaria kerberos. O MIT produz um cliente e servidor krb5.
vwduder, você poderia recomendar um leitor de cartão inteligente e uma fonte de cartões compatíveis com FIPS-201?
http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf
Eu tenho uma cópia no meu próprio servidor, mas não sou popular o suficiente neste rastreamento de pilha no momento para compartilhá-lo com você. O acima é apenas um pouco menos confiável do que nossos próprios servidores, então você provavelmente poderá obtê-lo deles;)
[editar] Agora sou popular o suficiente!
http://www.colliertech.org/state/FIPS-201-1-chng1.pdf
fonte
Ao usar chaves RSA, 1) e 2) são triviais, porque, como veremos em 3), o certificado real é irrelevante nesse contexto. Basta acessar o cacert.org ou gerar um certificado autoassinado e está tudo pronto.
Para 3) você precisará extrair sua chave pública e instalá-la em $ HOME / .ssh / allowed_keys. Preste atenção à propriedade e às permissões do arquivo! (700 para .ssh, 600 para chaves autorizadas). A autenticação de chave pública em todo o host é desencorajada, mas deixada como um exercício para mentes curiosas.
Quanto a 4), você deve consultar o PuTTY SC ( http://www.joebar.ch/puttysc/ ) ou, de preferência, o PuTTY-CAC ( http://www.risacher.org/putty-cac/ ), que melhora a PuTTY SC com um melhor algoritmo de extração de chave pública e também inclui o suporte Kerberos-GSSAPI da filial de desenvolvimento do PuTTY.
fonte
Fiz um vídeo para mostrar o uso de um cartão inteligente em um servidor Linux usando PuttySC e SecureCRT . Você pode assistir aqui: Como fazer o SSH com seu cartão inteligente
Não explico como aprovisionar um certificado no cartão, mas, se o fizer, lembre-se de que a chave administrativa do cartão deve ser alterada usando um sistema de gerenciamento de cartões. Será muito mais fácil para você se sua empresa fornecer um cartão inteligente para que você não precise se preocupar com essa parte.
Depois de provisionar o cartão, você precisa extrair a chave pública e adicioná-la a ~ / .sshd / allowed_key.
Para se conectar ao servidor, você pode usar ferramentas como PuttySC ou SecureCRT. Você precisará obter a biblioteca PSKC # 11 para o cartão (do fabricante do cartão inteligente ou de uma versão de código aberto). Configure a ferramenta SSH com a biblioteca, ela deve poder lê-la e encontrar o certificado.
Quando você se autentica, a ferramenta solicita o PIN do cartão inteligente.
fonte