Como transferir minhas chaves SSH para outra máquina?
42
Eu tenho contas em duas máquinas: H1 e H2. Criei chaves ssh no H1 e instalei no S1. Agora posso ssh para S1 a partir de H1. Eu quero fazer o mesmo com H2. Como instalo as chaves ssh geradas no H1 no H2?
Como ssh-copy-idé uma solução mais infalível (sem sobrescrever as chaves existentes ou copiar acidentalmente a chave privada em vez da chave pública ) e uma solução menos conhecida, considere aceitar uma dessas respostas como a resposta aceita.
agtoever
Respostas:
28
Editado: se você possui as duas máquinas, poderá compartilhar sua chave privada. Mas esta solução não é segura para notebooks roubados ou para máquinas que você não possui.
Você pode copiar suas chaves privadas de H1 para H2, se desejar usar a mesma chave privada para poder efetuar login de H2 para S1. Quando você no H1 executa os comandos:
Atenção! Isso excluirá e substituirá qualquer chave privada que você tivesse no H2.
A melhor maneira é gerar novas chaves privadas no H2 ( ssh-keygen) e instalar sua parte pública no S1 com o ssh-copy-idutil. Nesse caso mais seguro, você terá dois conjuntos de chaves; um é para login H1-S1 e o segundo para login H2-S1. Haverá duas chaves públicas autorizadas em S1. E você poderá revogar um deles ou ambos (por exemplo, quando seu notebook for roubado ou o proprietário da máquina decidir desativar sua conta e reutilizar todos os seus arquivos).
Copiar uma chave privada não é realmente uma boa ideia. Ter uma única chave em vários locais 1. torna mais vulnerável, 2. aumenta o risco de você perder o controle de todos os locais, 3. não permite desativar o acesso de apenas um local. Do ponto de vista da segurança, você deve gerar um novo par de chaves em cada local - a solução da Mu Qiao.
ssh-copy-id é um script que usa ssh para efetuar login em uma máquina remota e anexar o arquivo de identidade indicado ao arquivo ~ / .ssh / allowed_keys dessa máquina.
@Eu quero fazer ssh de H2 para S1. Desejo transferir e instalar minha chave pública e privada de H1 para H2. Isso fará isso?
Bruce
3
@ Bruce não, você precisa gerar novamente as chaves em h2 e usar esse comando para copiar suas chaves. Outra abordagem é permitir que h1 e h2 compartilhem o diretório inicial.
Mu Qiao
9
Use duas chaves privadas
Configure o H2 usando o mesmo processo (mas não a mesma chave privada) que você fez ao configurar o H1:
Nunca há um bom motivo para copiar uma chave privada de outra máquina. Se você ainda não gerou uma nova chave privada no H2, faça-o agora. Gere também a chave pública correspondente. Em um terminal em H2,
tipo: ssh-keygen -t rsa
Copie a chave pública do seu H2 para o servidor. Em um terminal em H2,
(mas use seu nome de usuário real nos nomes de host de S1 e S1 e depois digite sua senha em S1 quando solicitada).
Isso instala a chave pública da sua estação de trabalho no ~/.ssh/authorized_keysarquivo desse usuário no servidor.
Não há etapa 3. A partir de agora, você pode efetuar login no S1 a partir do seu H2 e também fazer o login no S1 a partir do seu H1.
detalhes
Eu suponho que o que você realmente está perguntando é
Eu tenho um servidor ("S1")
Eu entro no meu servidor no meu laptop pessoal ("H1")
Também quero fazer login no meu servidor na minha estação de trabalho ("H2").
Qual é o caminho certo para fazer isso?
Suponho que poderia simplesmente fazer login com a mesma senha nos dois lugares. Esse não pode ser o caminho certo, porque todo mundo diz que a autenticação de chave pública é muito melhor que as senhas. (uma)
Suponho que poderia simplesmente copiar a chave privada do meu laptop para minha estação de trabalho. Esse não pode ser o caminho certo, porque todo mundo diz que a chave privada nunca deve sair da máquina do cliente.
As pessoas pensam 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 ssh são melhores que o sistema de senhas: uma conta em um servidor tem um único nome de usuário e qualquer número de chaves públicas autorizadas , todas listadas no ~/.ssh/authorized_keysarquivo.
@Eu quero fazer ssh de H2 para S1. Desejo transferir e instalar minha chave pública e privada de H1 para H2. Isso fará isso?
Bruce
2
Se você estiver logado no S1 ou H1 (que agora possui sua chave) usando ssh-copy-id, você poderá transferir sua chave pública (não privada) para o H2. Em geral, é melhor limitar o número de máquinas nas quais sua chave privada está instalada. Tente mantê-lo em algumas máquinas seguras apenas para evitar sua perda.
Como copio minha chave privada para o H2?
Bruce
0
Para mudar as chaves SSH de um computador para outro. Basta copiar a pasta inteira de ~ / .ssh de H1 (máquina antiga) para a pasta de conteúdo ~ / .ssh da nova máquina H2.
ssh-copy-id
é uma solução mais infalível (sem sobrescrever as chaves existentes ou copiar acidentalmente a chave privada em vez da chave pública ) e uma solução menos conhecida, considere aceitar uma dessas respostas como a resposta aceita.Respostas:
Editado: se você possui as duas máquinas, poderá compartilhar sua chave privada. Mas esta solução não é segura para notebooks roubados ou para máquinas que você não possui.
Você pode copiar suas chaves privadas de H1 para H2, se desejar usar a mesma chave privada para poder efetuar login de H2 para S1. Quando você no H1 executa os comandos:
Atenção! Isso excluirá e substituirá qualquer chave privada que você tivesse no H2.
A melhor maneira é gerar novas chaves privadas no H2 (
ssh-keygen
) e instalar sua parte pública no S1 com ossh-copy-id
util. Nesse caso mais seguro, você terá dois conjuntos de chaves; um é para login H1-S1 e o segundo para login H2-S1. Haverá duas chaves públicas autorizadas em S1. E você poderá revogar um deles ou ambos (por exemplo, quando seu notebook for roubado ou o proprietário da máquina decidir desativar sua conta e reutilizar todos os seus arquivos).fonte
Usar
ssh-copy-id
SINOPSE
DESCRIÇÃO
fonte
Use duas chaves privadas
Configure o H2 usando o mesmo processo (mas não a mesma chave privada) que você fez ao configurar o H1:
tipo:
ssh-keygen -t rsa
tipo:
ssh-copy-id [email protected]
(mas use seu nome de usuário real nos nomes de host de S1 e S1 e depois digite sua senha em S1 quando solicitada).
Isso instala a chave pública da sua estação de trabalho no
~/.ssh/authorized_keys
arquivo desse usuário no servidor.detalhes
Eu suponho que o que você realmente está perguntando é
Qual é o caminho certo para fazer isso?
As pessoas pensam 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 ssh são melhores que o sistema de senhas: uma conta em um servidor tem um único nome de usuário e qualquer número de chaves públicas autorizadas , todas listadas no
~/.ssh/authorized_keys
arquivo.( mais detalhes ).
fonte
O ssh-copy-id faria o trabalho por você: http://linux.die.net/man/1/ssh-copy-id ?
fonte
Para mudar as chaves SSH de um computador para outro. Basta copiar a pasta inteira de ~ / .ssh de H1 (máquina antiga) para a pasta de conteúdo ~ / .ssh da nova máquina H2.
Agora tente:
Provavelmente você receberá um aviso de permissão para corrigir essa execução:
Agora novamente:
Vai funcionar bem agora.
fonte