Estou reinstalando minha área de trabalho Linux, como faço para manter os logins SSH funcionando?


15

Há muito tempo, eu gerava um par de chaves usando ssh-keygene costumava ssh-copy-idativar o login em muitas VMs de desenvolvimento sem precisar inserir manualmente uma senha. Também carreguei minha chave pública no GitHub, GitLab e similares para autenticar nos repositórios git usando em git@vez de https://.

Como posso reinstalar minha área de trabalho Linux e manter todos esses logins funcionando? Fazer backup e restaurar o ~/.ssh/suficiente?


2
Essa é uma das muitas razões por que quando você instala um novo ambiente Linux você deve ter uma partição para /e outra para/home
Olegário

4
@olegario Eu discordo. Eu usei o Linux a maior parte da minha vida e atualmente administro mais de 100 máquinas, mas sempre achei uma /homepartição separada, um aborrecimento e uso limitado. Entendo que algumas pessoas acham útil, e isso é bom, mas não acho que seja uma ajuda adequada para a situação dos OPs.
marcelm

5
Não há realmente nenhuma vantagem em uma partição em apenas fazer backup e restaurar /homevia tarou qualquer outro meio, a menos que você planeje reutilizar as partições existentes, o que é arriscado de qualquer maneira com a maioria dos instaladores de sistemas operacionais que os limpam com prazer, a menos que esteja em um disco físico separado. remova durante a instalação.
R .. GitHub Pare de ajudar o gelo

1
Depois de concluir a reinstalação, não importa exatamente como você o faça, convém reconsiderar ter apenas um par de chaves para tudo.
a CVn

Respostas:


29

Você precisa fazer backup de suas chaves privadas, no mínimo. Eles não podem ser regenerados sem precisar substituir sua chave pública em qualquer lugar. Estes normalmente teriam um nome começando com id_e sem extensão.

As chaves públicas podem ser regenerados com este comando: ssh-keygen -y -f path/to/private/key. Sua configuração do usuário (um arquivo chamado "config") também pode ser útil se você tiver definido algum padrão.

Todos esses arquivos normalmente estão em ~ / .ssh, mas verifique primeiro!


28

Para conexões SSH de saída , basta fazer backup do seu par de chaves. Por conveniência, você pode apenas fazer backup do ~/.sshdiretório e restaurá-lo na nova instalação.

Normalmente, fazer backup e restaurar esse diretório é suficiente, mas é possível armazenar as chaves em outro lugar usando configurações personalizadas em ~/.ssh/configou /etc/ssh/ssh_config, ou usando um agente SSH e ssh-addescolhendo as chaves a serem usadas nas conexões de saída de um local arbitrário .

Se você tiver conexões SSH de entrada , considere também fazer backup das chaves do host SSH em /etc/ssh/ssh_host_*. Se você não fizer o backup delas, novas chaves de host serão geradas automaticamente quando forem sshdiniciadas pela primeira vez na nova instalação, e todas as conexões SSH de entrada mostrarão a "incompatibilidade de chave de host SSH, alguém pode estar fazendo algo ruim!" mensagem de erro e geralmente rejeita a conexão, a menos que alguém exclua a chave do host antigo no cliente SSH e aceite explicitamente a nova.

Parece que você pode não ter conexões SSH de entrada no seu sistema desktop Linux, então estou mencionando isso apenas por uma questão de integridade. Mas em sistemas de servidor, ou se você tiver uma automação significativa baseada em SSH configurada, reconhecer uma chave de host alterada pode ser um grande aborrecimento.


1
+1 Esta deve ser a resposta aceita. Para fazer login em outras máquinas, é necessário manter a chave do host, geralmente armazenada /etc/ssh, os nomes dos arquivos ssh_host_*(vários arquivos para algoritmos diferentes).
rexkogitans

2
Note que se você estiver SSHing em , você pode querer rodar as anfitriãs chaves de qualquer maneira; mas isso depende da sua situação de gerenciamento de chaves (por exemplo, as chaves foram geradas pela última vez há anos, e você ainda não possui /etc/ssh/ssh_host_ed25519_key, ou possui uma chave RSA 1024 ou até uma chave DSS).
Piskvor
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.