Processo para mover as chaves do servidor SSH para o novo servidor

9

Em breve, um servidor será transferido para um novo hardware em um novo datacenter, e é claro que isso significa um novo IP.

Qual é o processo correto (se houver) para mover as chaves SSH do servidor original para o novo, para que os clientes conectados não recebam nenhum aviso ou precisem aceitar algo novamente?

É possível, considerando que o IP está mudando?

Quais arquivos eu tenho que mover? Estou assumindo todos os arquivos ssh_host_ *.

Passando do RHEL 5 para o Ubuntu 10.04.

Daniel Huckstep
fonte

Respostas:

8

Você pode mover as chaves do seu seridor atual para o novo servidor sem muito aborrecimento. Você só precisa garantir que eles entrem no mesmo local e tenham a mesma permissão.

Idealmente, você deve aproveitar a oportunidade para criar novas chaves e atualizar as chaves do cliente no interesse da segurança.

Mike
fonte
2
Esqueci-me de acrescentar que seus usuários podem receber um aviso ao se conectarem ao novo host, informando que já possuem um host no arquivo conhecidohosts que corresponde à chave em que estão se autenticando. Isso significa que eles terão que remover a entrada no arquivo de hosts conhecidos. Você não pode contornar isso.
23311 Mike
1
Portanto, se os usuários receberem um aviso de qualquer maneira, há muito sentido em mover as teclas?
Daniel Huckstep
1
os usuários receberão um aviso. Será um homem na mensagem de ataque do meio. Parece assustador, mas se você excluir know_hosts do cliente, eles receberão uma mensagem menos assustadora. Não conheço algum tipo de alerta.
egorgry
5

1) Se os arquivos de configuração do sshd estiverem armazenados em / etc / ssh /, você precisará copiar todos eles. Você encontrará a configuração do sshd lá, bem como o par de chaves do host.

Certifique-se de copiar corretamente as permissões também! O sshd simplesmente ignorará as chaves que não estão adequadamente protegidas. (Também é bom, pois uma chave privada desprotegida é uma péssima idéia.)

2) Se você já adicionou chaves públicas de hosts remotos confiáveis ​​e não precisa mais de uma senha para fazer login, também precisará copiar essas informações para que o login automático funcione novamente agora. Essas informações são armazenadas normalmente em /home/-account-/.ssh/ (sob as teclas autorizadas). Novamente, não esqueça as permissões aqui.


Com relação à alteração do endereço IP, supondo que os clientes remotos realmente vejam uma alteração no IP (você não está atrás de um proxy reverso ou algo assim), então não, eles exigirão que o usuário aceite o certificado novamente. (como no arquivo known_hosts do cliente remoto, o IP do servidor e o certificado do servidor foram armazenados juntos) Pior ainda, se você atribuir esse endereço IP a outro servidor ssh, eles poderão até ser avisados ​​de um ataque man-in-the-middle.

Portanto, basta usar o mesmo endereço IP (externo) no novo servidor.

Arnout
fonte
0

Você não mencionou seu sistema operacional. Posso dizer com certeza que um host RHEL possui as chaves do servidor armazenadas em / etc / ssh. Apenas copie esse diretório na sua totalidade. Você precisará devolver o sshd / reiniciar a caixa.

Acredito que, desde que você esteja se conectando pelo mesmo nome DNS, não deverá receber avisos. Mesmo com o novo IP.


--Christopher Karel

Christopher Karel
fonte
Nota adicionada sobre o que são os sistemas operacionais
Daniel Huckstep 23/03
1
Então sim, / etc / ssh é o diretório que você deseja. Eu recomendaria apenas as teclas ssh_host *. Não mova os arquivos de configuração. E você desejará fazer o backup do lado do destino, apenas para estar seguro.
23411 Christopher Karel