É possível / boa prática usar a mesma chave privada para dois servidores para login sem senha na mesma estação de trabalho / localserver?

4

Eu tenho dois sites. Um site é um clone do outro site. Quando eu chequei o arquivo sshd_config em ambos os sites eles são exatamente similares, exceto um usa authorized_keys como identificação e o outro usa Known_keys como identificação, espero que isso não seja um problema já que o caminho é definido de acordo mostrando a localização e o nome do arquivo da chave pública.

Estou me perguntando por que não consigo fazer login com a mesma chave privada da mesma máquina cuja chave pública está ativa nos dois servidores.

Estou perdendo alguma informação? Ou não é possível?

    
por tough 26.07.2012 / 17:11

2 respostas

10

Esta pergunta é na verdade três perguntas separadas.

Pergunta 1:

É possível usar o mesmo par de chaves para acesso SSH a dois ou mais servidores?

Resposta 1:

Sim, é possível, muitas pessoas (inclusive) fazem isso regularmente. Não há razão para que seja limitado a um servidor. Estamos assumindo que você está falando de keypairs de cliente e não de certificados de servidor. Um par de chaves do cliente autentica o cliente , ou seja, a máquina tentando obter acesso a uma sessão SSH. Você pode definitivamente reutilizar seu par de chaves do cliente, e um servidor não será o mais sábio que seu par de chaves é usado em outros servidores.

Pergunta 2:

É recomendado que use o mesmo par de chaves para acesso SSH a dois ou mais servidores?

Resposta 2:

Depende de quem você pergunta e quão rigoroso é seu plano de segurança. São adicionados riscos de usar o par de chaves same para dois ou mais hosts remotos. Esses riscos estão acima e além dos riscos nominais de usar um par de chaves para todos os hosts.

Qualquer pessoa que obtenha sua chave privada (assim como a senha da chave privada, se aplicável) poderá acessar todos os sistemas que sua chave privada autenticar. O problema então recai no atacante, sabendo os nomes de host de todos os servidores nos quais sua chave privada é autenticada, e as contas de usuário em cada um desses hosts que consideram sua chave pública como uma chave autorizada. Isso aumenta o dano potencial que pode ser feito no caso de sua chave privada ser roubada.

Observe que não é um risco de autenticação se alguém obtiver somente sua chave pública : para todos os usuários, você também pode sua chave pública SSH na sua página inicial. Você pode postar com segurança até aqui em sua pergunta apenas por diversão e risadas, sem nenhuma implicação na segurança. É chamado de público por um motivo.

Se você tiver algum motivo para suspeitar que a sua chave privada não é completamente segura e teme que o dano seja significativamente maior se ambos os sistemas forem comprometidos, você poderá criar duas chaves privadas. Mas , se você armazenar as duas chaves privadas no mesmo sistema e elas não tiverem passphrases, a mesma senha ou as senhas serão armazenadas em algum lugar (um pedaço de papel, LastPass, etc) no mesmo lugar, então ter dois pares de chaves separados não está realmente adicionando nenhuma segurança. Mas se você usar a criptografia de disco completo e tiver um sistema de cliente bem protegido, o risco de ter sua chave particular e frase secreta roubada é relativamente baixo.

A propósito, se você estiver usando chaves privadas sem nenhuma senha, é melhor não fazer nada que valha mais do que alguns dólares em seus sistemas. Se você está conduzindo qualquer tipo de negócio oficial, comercial ou não, na minha opinião, é absolutamente essencial usar uma senha strong e exclusiva que não esteja escrita em qualquer lugar strong> para uma chave privada que obtém acesso a qualquer sistema de valor. Se você está lidando com informações pessoais dos clientes (números de cartão de crédito, etc), faça isso "absolutamente essencial" lá em 72 pt font e 10 vezes mais ousado. Se você está lidando com informações confidenciais do governo, torne isso "absolutamente essencial" em fontes de 5000 pt e 5000 vezes mais ousadas.

Pergunta 3:

Por que minha autenticação de chave pública não funciona?

Resposta 3:

Isso depende da sua configuração específica. Você não nos deu nenhum detalhe específico sobre o motivo de não funcionar. Precisamos de detalhes. Mensagens de erro, logs detalhados (mas omitem senhas e nomes de usuários e endereços IP!) E uma lista do software e das versões que você está usando para o cliente SSH e o servidor SSH, além do sistema operacional e a versão de ambos os sistemas. / p>

No entanto , eu suspeito strongmente que uma razão pela qual não está funcionando é que você está usando o arquivo errado em um dos sistemas. known_keys não é para autenticação de chave pública; é para o cliente SSH (o cliente no qual o arquivo known_keys reside) para armazenar em cache as chaves públicas dos servidores aos quais ele se conecta. Você deve estar usando authorized_keys em ambos os sistemas. (Kudos para a outra pessoa responder a sua pergunta por postar este fato alguns segundos antes de mim:))

    
por 26.07.2012 / 17:27
8

known_keys e authorized_keys são coisas completamente diferentes.

O arquivo authorized_keys é onde você deve colocar as chaves públicas que correspondem às chaves privadas que você usará para acessar o servidor. É suposto estar nos servidores que você deseja entrar.

known_keys é um arquivo no qual a impressão digital dos servidores remotos é armazenada, para que você saiba que, se tentar conectar-se novamente, é realmente o servidor que espera ser. Isso é para impedir ataques man-in-the-middle, em que alguém poderia falsificar o nome do host ou o endereço IP do servidor remoto para roubar informações que você poderia fornecer, achando que estava conectado à informação certa. Este arquivo é criado ou atualizado automaticamente quando você tenta se conectar em algum lugar novo, portanto, observe que ele está relacionado à operação do SSH como cliente . Se você ver esse arquivo no seu servidor, provavelmente tentou se conectar a ele em outro lugar.

    
por 26.07.2012 / 17:25