É permitido compartilhar arquivos de chaves privadas entre vários computadores / serviços?

106

Então, todos nós sabemos como usar chaves públicas / privadas usando SSH, etc. Mas qual é a melhor maneira de usá-las / reutilizá-las? Devo mantê-los em um lugar seguro para sempre? Quer dizer, eu precisava de um par de chaves para acessar o GitHub. Eu criei um par do zero e usei isso por algum tempo para acessar o GitHub. Então eu formatei meu disco rígido e perdi esse par. Grande coisa, criei um novo par e configurei o GitHub para usar meu novo par. Ou é algo que eu não quero perder?

Eu também precisava de um par de chave pública / chaves privadas para acessar os sistemas da nossa empresa. Nosso administrador me pediu minha chave pública e eu criei um novo par e dei a ele. Geralmente é melhor criar um novo par para acessar sistemas diferentes ou é melhor ter um par e reutilizá-lo para acessar diferentes sistemas? Da mesma forma, é melhor criar dois pares diferentes e usar um para acessar os sistemas de nossas empresas a partir de casa eo outro para acessar os sistemas do trabalho, ou é melhor ter apenas um par e usá-lo de ambos os locais?

    
por Behrang 16.09.2010 / 15:15

5 respostas

83

Você definitivamente deve ter chaves privadas separadas por origem . Basicamente, isso significa que geralmente deve haver uma única cópia de cada chave privada (sem contar os backups). Não há problema em usar a mesma chave privada de uma máquina intimamente relacionada, em situações em que a invasão em uma basicamente dá acesso a outra (por exemplo, se elas estão em shosts.equiv ). Não use a mesma chave privada em máquinas em diferentes regiões (por exemplo, casa e trabalho), nunca compartilhe uma chave privada entre dois usuários e nunca compartilhe uma chave privada entre um laptop e qualquer outra máquina.

Na maioria das vezes, não vejo sentido em ter chaves privadas diferentes para destinos diferentes. Se uma chave privada for comprometida, todas as outras chaves privadas armazenadas no mesmo diretório certamente serão comprometidas, portanto, haverá complicação adicional sem nenhum benefício de segurança.

Se você seguir esses princípios, cada par de chaves identificará um par (máquina, usuário), o que facilita o gerenciamento da autorização.

Posso pensar em duas exceções à regra geral de uma única chave privada por origem:

  • Se você tiver uma chave sem senha que dê acesso apenas a um comando específico em uma máquina específica (por exemplo, um mecanismo de backup ou notificação automatizado), essa chave deve ser diferente da chave geral de acesso ao shell.
  • Se algumas máquinas estiverem conectadas de forma intermitente, você poderá ter uma chave privada antiga ao lado de uma nova chave privada, até que você conclua a implantação da nova chave.
por 16.09.2010 / 20:26
4

Eu não sei qual é o melhor caminho, mas posso dizer qual é o meu jeito.

Como administrador de sistema, uso uma chave diferente para acessar cada servidor / serviço como raiz. Dessa forma, se uma chave for perdida ou comprometida, limito o risco a um único servidor e não preciso atualizar todos os meus serviços com chaves novas.

Por falar em usuários, uso uma chave diferente para cada um deles. Com essa chave, o usuário pode acessar o serviço de que precisa como usuário não privilegiado. Dessa forma, posso conceder ou revogar facilmente o acesso a serviços únicos para cada usuário. Caso o usuário perca sua chave, posso excluí-la de todos os serviços e limitar o risco de acesso não autorizado.

    
por 16.09.2010 / 16:28
1

Acredito que você poderia usar a chave privada em qualquer lugar desde que você tenha colocado uma senha, ou seja, se quiser compartilhar sua chave privada com poucas máquinas, por exemplo, laptop 1, 2, desktop 1, 2, esteja bem.

Da minha experiência, minha máquina principal é a minha área de trabalho que faço a maior parte do meu trabalho com seu processador potente, mas às vezes preciso usar meu laptop em dispositivos móveis, solucionar problemas no data center e outras coisas. para qualquer host em que eu tenha minha chave pública.

    
por 27.06.2012 / 10:27
0

Na minha empresa, usamos essas chaves específicas do usuário. Isso significa caso dois. O usuário tem sua própria chave e esta é usada para todas as máquinas que ele usa para se conectar ao sistema da empresa. minha opinião é usar uma chave para um sistema. Isso significa que você usa essa chave em todas as máquinas necessárias para se conectar às redes específicas. Para o seu caso, isso seria uma chave para o GitHub e uma chave para o sistema da empresa. Então, se o seu administrador perguntar de novo, eu daria a mesma chave da última vez. não é um novo. Mas, eu não sei se existe uma política de uso comum para essas chaves e estou fazendo errado desde então. Isso com certeza é possível; -)

    
por 16.09.2010 / 15:27
0

A chave pública que você gerou é para todos. Isso lhes permitirá a) verificar a autenticidade b) criptografar para você

A chave privada é, bem, privada. É só para você. E é a chave que você deve fazer backup em algum lugar, em um lugar seguro. Você também pode criptografá-lo com uma senha segura, se você salvá-lo em um pen drive, por exemplo.

A chave pública é sua identidade para os outros. Portanto, não há problema / é melhor usar um par de chaves para tudo, pelo menos onde você não quer usar uma nova identidade explícita, para que os outros saibam que você é você.

    
por 16.09.2010 / 15:30