Questão parcialmente teórica sobre SSH.
Eu tenho várias máquinas remotas.
Eu quero fazer login nessas máquinas remotas sem uma senha. Então, estou fazendo ssh-keygen
em uma máquina dev e copio a chave pública para a primeira máquina em autorized_keys
. Conexão bem-sucedida.
Agora, o que fazer com uma segunda, terceira, etc máquinas remotas? Devo reutilizar a mesma chave pública e copiá-la em authorized_keys
outras máquinas? Ou devo gerar uma nova chave para cada controle remoto? A mesma chave pública em máquinas diferentes pode ser um risco de segurança?
Você pode compartilhá-los
Em geral, as chaves públicas SSH podem ser compartilhadas entre hosts com segurança. Uma das grandes vantagens da criptografia de chave pública/privada é o fato de que você não precisa de uma nova chave para cada par servidor/cliente.
Colocando claramente, dar a um servidor sua chave pública não lhe dá acesso para se passar por você. É "impossível" (trilhões de anos de tempo de CPU) passar da chave pública para a privada.
Uma exceção
Há uma fraqueza no uso de "agentes-chave" descritos aqui . O administrador do sistema do servidor (ou
root
) pode usar o agente de chave do seu cliente local enquanto você estiver conectado.Praticamente, isso significa que enquanto você estiver conectado e usando um agente de chave SSH, o administrador do sistema poderá se passar por você em outro servidor.
Além dos limites organizacionais, você deve evitar usar um agente ou talvez encontrar outro agente-chave que o avise quando estiver sendo usado. Caso contrário, você não deve compartilhar chaves públicas/privadas entre organizações.
Na medida em que você mantém sua chave privada segura (não compartilhada com ninguém, protegida por senha), não vejo nenhum motivo sério contra o uso da mesma chave pública em muitas máquinas.