É uma má idéia usar a mesma chave ssh privada em vários computadores?

35

Recentemente, comprei um laptop no qual preciso acessar os mesmos hosts remotos da minha área de trabalho. Ocorreu-me que talvez seja possível simplesmente copiar o arquivo de chave privada da área de trabalho para o meu laptop e evitar a necessidade de adicionar uma nova chave aos ~/.ssh/authorized_keysarquivos em todos os hosts que desejo acessar. Então, minhas perguntas são:

  1. Isso é possível?
  2. Existem implicações de segurança não óbvias?
  3. Às vezes, faço login na minha área de trabalho usando meu laptop. Se houvesse a mesma chave, isso causaria algum problema?
Jason Creighton
fonte
2
Eu suspeito que você quer dizer chaves autorizadas, não conhecidas. O primeiro é para entrada e o segundo para saída.
Matthew Schinckel 5/08/09
Boa pegada. Fixo.
Jason Creighton

Respostas:

29

Sim, isso é possível. Sua chave privada não está vinculada a uma única máquina.

Não tenho certeza do que você quer dizer com não óbvio, isso geralmente é subjetivo;). Não é uma péssima idéia se você tiver uma frase-senha muito forte, com pelo menos 20 caracteres.

Não há problemas em conectar-se com a mesma chave da sua área de trabalho. Eu configuraria um agente ssh para sua chave no laptop e encaminharia o agente para a área de trabalho, para que você use essa chave em outros sistemas que você acessar a partir daí.

Na página do manual ssh-agent em um sistema Linux:

O ssh-agent é um programa para armazenar chaves privadas usadas para autenticação de chave pública (RSA, DSA). A idéia é que o ssh-agent seja iniciado no início de uma sessão X ou de login e todas as outras janelas ou programas sejam iniciados como clientes do programa ssh-agent. Através do uso de variáveis ​​de ambiente, o agente pode ser localizado e usado automaticamente para autenticação ao efetuar login em outras máquinas usando o ssh (1).

Você executaria isso no seu laptop, no programa ssh-agent no Linux / Unix (que vem com o OpenSSH) ou no puTTY agent, se você estiver usando o Windows. Você não precisa do agente em execução em nenhum sistema remoto, ele apenas mantém sua chave privada na memória do sistema local; portanto, você só precisa digitar sua senha uma vez, para carregar a chave no agente.

O encaminhamento de agente é um recurso do cliente ssh ( sshou massa) que simplesmente persiste o agente em outros sistemas através da conexão ssh.

jtimberman
fonte
1
Não entendo bem o que você está sugerindo em relação ao encaminhamento de agente ssh. Você poderia falar um pouco sobre esse assunto? Devo mencionar que não posso contar com a área de trabalho sempre acessível quando preciso usar meu laptop.
21430 Jason Creighton
Atualizada a resposta :)
jtimberman
10

Eu costumava usar uma única chave privada em todas as minhas máquinas (e algumas delas eu sou apenas um usuário, não um administrador), mas recentemente mudei isso. Funciona com a chave única, mas significa que se você precisar revogar a chave (se ela estiver comprometida), será necessário alterá-la em todas as máquinas.

Obviamente, se um invasor obtém acesso e é capaz de transferir ssh para outra máquina, ele pode obter a chave dessa máquina e assim por diante. Mas me sinto um pouco mais seguro saber que posso revogar apenas uma chave e bloquear a máquina. Isso significa que eu preciso remover a chave do arquivo allowed_keys.

Matthew Schinckel
fonte
Desculpe por necro uma postagem antiga, mas você acha que isso seria atenuado criptografando sua chave privada com uma senha? Ou no seu caso, a senha também foi comprometida?
thirdender
1
Provavelmente seria atenuada com uma senha na chave. Na realidade, porém, você provavelmente poderia usar o encaminhamento ssh (usando um agente) e, em seguida, ter apenas uma chave por máquina real usada e protegê-la por senha.
Matthew Schinckel