Como transferir minhas chaves SSH para outra máquina?

37

Eu tenho contas em duas máquinas: H1 e H2. Eu criei chaves ssh no H1 e instalei no S1. Agora posso ssh para S1 de H1. Eu quero fazer o mesmo do H2. Como instalo as chaves ssh geradas no H1 no H2?

    
por Bruce 06.09.2011 / 17:12

4 respostas

22

Editado: Se você possui as duas máquinas, você pode compartilhar sua chave privada. Mas esta solução não é segura para o caso de notebook roubado ou para máquinas que você não possui.

Você pode copiar suas chaves privadas de H1 para H2, se quiser usar a mesma chave privada para poder acessar de H2 a S1. Quando você no H1 fizer os comandos:

H1$ ssh H2 mkdir ~/.ssh
H1$ scp  ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/

Atenção! Isso excluirá e substituirá qualquer chave particular que você tivesse no H2.

Melhor maneira é gerar novas chaves privadas no H2 ( ssh-keygen ) e instalar sua parte pública no S1 com ssh-copy-id util. Neste caso mais seguro, você terá dois conjuntos de chaves; um é para o login H1-S1 e o segundo para o login H2-S1. Haverá duas chaves públicas autorizadas no S1. E você poderá revogar qualquer um deles ou ambos (por exemplo, quando o notebook for roubado ou o proprietário da máquina decidir desativar sua conta e reutilizar todos os seus arquivos).

    
por 06.09.2011 / 17:23
25

Use ssh-copy-id

SINOPSE

ssh-copy-id [-i [identity_file]] [user@]machine

DESCRIÇÃO

ssh-copy-id is a script that uses ssh to log into a remote machine and append the indicated identity file to that machine's ~/.ssh/authorized_keys file.

    
por 06.09.2011 / 17:14
9

Use duas chaves privadas

Configure o H2 usando o mesmo processo (mas não a mesma chave privada) como você fez quando configurou o H1:

  • Nunca há uma boa razão para copiar uma chave privada de outra máquina. Se você ainda não gerou uma nova chave privada no H2, faça isso agora. Também gere a chave pública correspondente. Em um terminal no H2,

tipo: ssh-keygen -t rsa

  • Copie a chave pública do seu H2 para o servidor. Em um terminal no H2,

tipo: ssh-copy-id [email protected]

(mas use seu nome de usuário real no nome do host de S1 e S1 e depois digite sua senha no S1 quando ela for solicitada).

Isso instala a chave pública de sua estação de trabalho no arquivo ~/.ssh/authorized_keys para esse usuário no servidor.

  • Não há passo 3. A partir de agora, você pode entrar no S1 do seu H2, e também entrar no S1 do seu H1.

detalhes

Eu assumo que o que você está realmente perguntando é

  • Eu tenho um servidor ("S1")
  • Efetuo login no meu servidor a partir do meu laptop pessoal ("H1")
  • Eu também quero fazer login no meu servidor da minha estação de trabalho ("H2").

Qual é o caminho certo para fazer isso?

  • Suponho que eu poderia simplesmente fazer login com a mesma senha dos dois lugares. Isso não pode ser o caminho certo, porque todo mundo diz que a autenticação de chave pública é muito melhor do que senhas. (a)
  • Suponho que eu poderia simplesmente copiar a chave privada do meu laptop para a minha estação de trabalho. Esse não pode ser o caminho certo, porque todos dizem que a chave privada nunca deve sair da máquina do cliente.

As pessoas acham que uma conta em um servidor tem um único nome de usuário e, é claro, uma única senha autorizada.

Sistemas de chave pública como o ssh são melhores que o sistema de senha: Uma conta em um servidor tem um único nome de usuário e qualquer número de chaves públicas autorizadas , todas elas listadas no arquivo ~/.ssh/authorized_keys .

( mais detalhes ).

    
por 21.08.2014 / 17:57
0

O ssh-copy-id faria o trabalho para você: link ?

    
por 06.09.2011 / 17:14

Tags