Como faço backup de chaves ssh?

34

Estou planejando fazer uma nova instalação do ubuntu 11.10 no meu sistema. Antes disso, configurei a autenticação ssh baseada em chave nesta máquina. É possível fazer backup dessas chaves ssh, para que eu possa usá-lo em minha nova instalação. Ou então eu devo configurar a autenticação ssh baseada em chave novamente? Se posso fazer backup, quais são os arquivos que preciso copiar? Alguém pode explicar em detalhes pls. Desde já, obrigado.

karthick87
fonte
11
Você está falando de um servidor ou de uma máquina cliente?
enzotib 18/12/11
Estou falando sobre a máquina servidor.
precisa saber é o seguinte

Respostas:

39

Respondendo apenas ao SSH ... sim, você pode manter suas chaves.

Mas não consigo pensar em nenhum tópico sobre o qual expor. É simples: se o seu nome de usuário for karthick, as chaves estão localizadas em um diretório oculto aqui:

/home/karthick/.ssh

ou

~/.ssh

O id_rsa.pubarquivo contém a chave pública usada para autenticar. Mas existem outros arquivos para manter - todos eles, realmente , como known_hosts por exemplo . O MAIS IMPORTANTE é id_rsa(observe a falta de .pub), pois esta é sua chave privada. Faça backup de cada usuário. Por exemplo, se você configurar o SSH para root, obtenha /root/.sshtambém. E assim por diante, quantas contas você tiver, por esse motivo.

d -_- b
fonte
11
é por isso que é sempre uma boa prática ter em uma partição diferente o diretório / home; apenas no caso de você querer fazer uma nova instalação, você não quer perder nada da sua própria configuração.
maniat1k
5
Esta resposta é enganosa. O SSH usa um par de chaves públicas / privadas. A chave privada é no id_rsa. Essa é a chave mais importante para backup.
Janeiro
11
Você pode recuperar a chave pública (id_rsa.pub) da chave privada (id_rsa), mas não vice-versa. O .pubarquivo contém uma linha que pode ser colocada nos servidores ~/.ssh/authorized_keyse não é usada quando se conecta ao servidor.
Lekensteyn
11
@ maniat1k Geralmente, não concordo que você deva ter /homeuma partição separada para o sistema operacional, porque uma das diferenças entre distribuições ou versões dist é que os formatos dos arquivos de configuração podem mudar, para que as coisas se quebrem de maneiras inesperadas. Se você deseja manter sua configuração entre sistemas operacionais, acho que você deve fazê-lo explicitamente para programas específicos.
usar o seguinte
11
@Lekensteyn Na verdade, o .pubarquivo às vezes é usado ao conectar-se a um servidor. Se a chave secreta estiver criptografada, o .pubarquivo será usado para enviar a chave pública ao servidor. Se o servidor rejeitar a chave pública, não será necessário solicitar uma senha ao usuário. Somente se o servidor aceitar a chave pública, a chave secreta será descriptografada. E se você possui muitas chaves em um ssh-agente deseja instruir o cliente ssh sobre qual delas usar, pode fazê-lo pedindo que ele use um .pubarquivo específico para autenticação.
kasperd
33

Chaves criptográficas que você pode querer fazer backup.

  • ~/.gnupg/*
  • ~/.pki/nssdb/*
  • ~/.gnome2/keyrings/*
  • ~/.ssh/*
  • /usr/local/apache2/conf/ssl.crt/server.crt
  • /usr/local/apache2/conf/ssl.key/server.key
  • /etc/ssh/*
  • /etc/ssl/private/*
  • /etc/cups/ssl/*
Anônimo
fonte
3
Você perdeu o mesmo que ele perguntou sobre ( ~/.ssh), mas uma boa lista, no entanto :) :) #
1233
Você também perdeu/etc/ssh
Jan
Ótima lista! É mais difícil pesquisar no Google para essa lista do que deveria ser. Obrigado por fornecê-lo.
Christian
8

Cada usuário possui um diretório ~ / .ssh, que normalmente contém os seguintes arquivos:

1) id_dsa             private key of this user (different filename for rsa keys)
1) id_dsa.pub         public key of this user
2) authorized_keys    public key of other users (or same user on other machines)
   config             personal configuration
   known_hosts        host keys of other machines

Além disso, em / etc / ssh /, você encontrará:

3) ssh_host_dsa_key
3) ssh_host_dsa_key.pub
3) ssh_host_rsa_key
3) ssh_host_rsa_key.pub

Essas são as chaves do host, chaves que identificam este computador.

Você certamente deseja fazer backup de todas as chaves públicas e privadas. Chamamos a máquina em questão de home e o usuário user @ home. A mesma pessoa tem uma conta user @ remote e usa o login baseado em chave nas duas direções. O que aconteceria se você perder algum dos arquivos principais:

  1. Você perde a identidade do usuário @ home. ssh user@remotede casa não funcionará mais com autenticação baseada em chave.
  2. O user @ remote perde o direito de fazer login em sua casa com sua chave. ssh user@homenão funcionará mais do controle remoto com autenticação baseada em chave.
  3. Você perde a identidade do host. O usuário @ remote verá um aviso de que as chaves do host foram alteradas ao tentar ssh user@home. Dependendo da configuração, isso impedirá que ele efetue login.
Jan
fonte
Para respostas para perguntas não pediu ... :)