Devo criar uma nova chave ssh privada em cada sistema?

10

Preciso me conectar a vários servidores a partir de vários dispositivos via SSH. Gostaria de saber se eu deveria criar um novo arquivo id_dsa em cada dispositivo do qual estou me conectando ou se não há um problema ao copiar o mesmo arquivo id_dsa para cada dispositivo.

Por exemplo, eu tenho meu sistema de desktop principal baseado no Ubuntu e um MacBook Pro com ssh. E eu tenho um Netbook baseado no Windows com o Putty instalado. E eu tenho um telefone Android com o ConnectBot. Em qualquer um desses dispositivos, talvez seja necessário fazer o SSH para dezenas de diferentes servidores físicos e virtuais.

Cada servidor precisa da minha chave pública instalada. Além disso, minhas contas GitHub e Codaset exigem minha chave pública.

Para simplificar o gerenciamento de chaves, estou pensando em usar a mesma chave privada em todos esses sistemas. Essa é uma prática comum ou é melhor ter uma chave privada em cada sistema?

Tauren
fonte

Respostas:

3

Se você usar a mesma chave pública em cada sistema e a chave privada for comprometida, qualquer sistema que utilize essa chave, exceto outras restrições, estará acessível.

Confio em que você esteja usando chaves privadas protegidas por senha?

Em nossa prática de gerenciamento, temos "papéis" de baixa, média e alta segurança. Cada função usa uma chave diferente. As chaves privadas de alta segurança nunca devem ser transmitidas a ativos externos, usados ​​em laptops que podem ser perdidos / roubados, etc. As chaves de segurança média e baixa podem ser implantadas em uma ampla variedade de cenários.

Sugiro que você examine seus padrões de uso e veja o que faz desde então em termos de funções de segurança. Qual é o dano causado ao obter sua chave privada?

Você já pensou em colocar sua chave privada SSH em um dispositivo de hardware do qual não pode ser roubado, removendo o comprometimento potencial da chave para um problema não?

Os módulos de segurança de hardware e os cartões inteligentes podem ser usados ​​para armazenar chaves privadas SSH de maneira segura, permitindo que todas as operações criptográficas sejam executadas no dispositivo, e não nos sistemas operacionais. No entanto, eles não são uma panacéia, pois também requerem dispositivos de hardware de backup, no caso de uma falha de hardware.

jeffatrackaid
fonte
Sim, minhas chaves são protegidas por senha. Obrigado pela sua resposta. Você ajudou a confirmar minha preocupação de que, se eu usasse a mesma chave em todos os meus dispositivos, isso poderia resultar em problemas maiores no futuro.
Tauren
2

Absolutamente você deveria. Você sempre pode adicionar todas as chaves ao seu arquivo allowed_keys2. Eu gosto da sugestão de jeffatrackaid. No entanto, eu usaria chaves privadas diferentes para cada dispositivo - por que não? Perca o seu Android. Simples, remova a chave da lista de chaves autorizadas. Caso contrário, você precisará regenerar esse nível de chave novamente.

Dito isto, depende de como você percebe o risco desses ativos. Obviamente, você não quer perder as chaves, mas algumas podem ser expostas a um risco maior, por exemplo, github vs root para seus vps, por exemplo.


fonte
FYI, authorized_keys2é obsoleto desde 2001 - OpenSSH agora usos authorized_keys(embora ainda lê os arquivos para compatibilidade)
user1686
Ah ok obrigado. Eu sempre faço questão de desabilitar o SSHv1 e as cifras de baixa resistência etc.
2

Você se lembra quando o Debian teve esse pequeno problema de entropia ao gerar chaves SSH? Foi então que aprendi bem a lição.

Eu tenho minhas próprias chaves privadas para minhas próprias coisas, como acessar meus servidores pessoais. Eu tenho minha chave "All Purpose" que me leva à maioria das minhas caixas de desenvolvimento e, em seguida, corta as chaves por cliente que atendo.

Também mantenho uma lista muito detalhada de quais chaves estão em quais máquinas, caso precise substituí-las ou removê-las às pressas.

Para tudo o mais sério, eu apenas uso LDAP / PAM, caso precise remover outra pessoa com pressa.

Tim Post
fonte