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:))