Alternativas para o logon SSH x509

3

Eu tenho uma máquina com Windows 7 que não faz parte do domínio e de uma máquina Linux.

Eu quero fazer login no Linux no Windows usando um certificado x509 armazenado no armazenamento de certificados do Windows.

É possível?

Citando Como configurar o OpenSSH para usar o x509 PKI para autenticação?

I do not mean simply putting the public RSA key of a x.509 certificate into ~/.ssh/authorized_keys - I'm looking for a way to set up a ssh such that x.509 certificates signed by a pre-defined CA will automatically be granted access to the linked user account. RFC 6187 seems to suggest such a functionality

Eu não quero instalar chaves para cada usuário em vez de apenas um certificado de CA e um certificado de máquina e um DN de certificado de mapeamento para hospedar nomes de usuários para autorizar.

Em link parece que só é possível com um servidor OpenSSH bifurcado. Depois de uma resposta lá

I'm not inclined to diverge from the main branch of OpenSSH myself, security is too important and I don't have the resources to properly verify this significant of a change

O patch tem 200KB de comprimento, muito fácil de atirar no próprio pé com uma linguagem insegura como C, sem uma comunidade grande que o ramo principal do OpenSSH possui. Além disso, parece implementar um rascunho mais antigo em vez de RFC 6187

A comunidade OpenSSH não está interessada em x509 porque é uma dor para trabalhar com uma especificação tão grande:

The developers have maintained a stance that the complexity of X.509 certificates introduces an unacceptable attack surface for sshd. Instead, they have [recently] implemented an alternative certificate format which is much simpler to parse and thus introduces less risk.

O "formato de certificado alternativo" acima também não é uma boa ideia para mim. O X.509 é amplamente suportado, portanto, 2 certificados e 1 chave privada podem ser exibidos em muitos lugares diferentes, por exemplo, em TLS, IPSec, S / MIME e outras aplicações do CMS. Além disso, a revogação centralizada semelhante às CRLs não é suportada, portanto, a revogação de "certificados alternativos" com chaves privadas comprometidas é tediosa e propensa a erros.

Até agora, a única opção viável é GSSAPI - ela é até suportada pelo PuTTY.

Existe mais alguma coisa para simplificar o gerenciamento de chaves SSH?

    
por nponeccop 06.07.2013 / 17:05

1 resposta

0

Há um conjunto de correções para adicionar suporte de certificado X.509 ao OpenSSH mantido por Roumen Petrov. Isso permite que você use certificados de cliente X.509 para autenticar conexões SSH.

Por exemplo, você pode algo assim em ~/.ssh/authorized_keys :

# X.509 by DN
x509v3-sign-rsa DN /C=US/O=Example org/OU=Administrators/CN=David Coles

Uma desvantagem é que você também precisará de um cliente OpenSSH com patches semelhantes para se conectar a esses servidores ou a um cliente SSH de terceiros que suporte certificados X.509 (por exemplo, SecureCRT ). Além disso, muito poucas distribuições Linux carregam esses patches, então você provavelmente terá que aplicar os patches e construir o servidor OpenSSH por conta própria.

Uma abordagem ligeiramente diferente que não requer modificação no cliente seria usar a autenticação de chave pública normal, mas usar a opção de configuração AuthorizedKeysCommand do OpenSSH para procurar a chave SSH em um banco de dados centralizado (por exemplo, um atributo LDAP para esse usuário).

    
por 09.11.2013 / 05:33