Jak wykonać kopię zapasową kluczy ssh?

34

Planuję zrobić nową instalację systemu Ubuntu 11.10 w moim systemie. Wcześniej skonfigurowałem uwierzytelnianie ssh oparte na kluczu w tym komputerze. Czy jest możliwe zrobienie kopii zapasowej tych kluczy ssh, aby móc użyć tego w mojej nowej instalacji. A może muszę ponownie skonfigurować uwierzytelnianie ssh oparte na kluczach? Jeśli mogę wykonać kopię zapasową, jakie pliki muszę skopiować? Czy ktoś może to szczegółowo wyjaśnić, proszę. Z góry dziękuję.

karthick87
źródło
1
Czy mówisz o serwerze lub maszynie klienckiej?
enzotib,
Mówię o maszynie serwera.
karthick87

Odpowiedzi:

39

Odpowiadając tylko na SSH ... tak, możesz zachować swoje klucze.

Nie mogę jednak wymyślić żadnego tematu na ten temat. To proste: jeśli twoja nazwa użytkownika to karthick, to klucze znajdują się w ukrytym katalogu tutaj:

/home/karthick/.ssh

lub

~/.ssh

id_rsa.pubPlik zawiera klucz publiczny używany do uwierzytelniania. Ale są też inne pliki do zachowania - tak naprawdę wszystkie , known_hosts na przykład na przykład . W NAJWAŻNIEJSZE znaczy id_rsa(zauważ brak .pub), jak to jest klucz prywatny. Utwórz kopię zapasową każdego użytkownika. Na przykład, jeśli skonfigurujesz SSH dla root, pobierz /root/.sshrównież. I tak dalej dla wielu kont z tego powodu.

d -_- b
źródło
1
dlatego zawsze dobrą praktyką jest posiadanie na innej partycji katalogu / home; na wypadek, gdybyś chciał wykonać nową instalację, a nie chcesz stracić niczego z własnej konfiguracji.
maniat1k
5
Ta odpowiedź jest myląca. SSH używa pary kluczy prywatny / publiczny. Klucz prywatny jest w id_rsa. Jest to najbardziej importowany klucz do tworzenia kopii zapasowych.
sty
1
Możesz odzyskać klucz publiczny (id_rsa.pub) z klucza prywatnego (id_rsa), ale nie odwrotnie. .pubPlik zawiera jeden wiersz, który można umieścić na serwerach ~/.ssh/authorized_keysi nie jest w ogóle używany podczas łączenia się z serwerem.
Lekensteyn,
1
@ maniat1k Ogólnie nie zgadzam się, że powinieneś mieć /homena osobnej partycji dla systemu operacyjnego, ponieważ jedną z różnic między dystrybucjami lub wersjami dystrybucji jest to, że formaty plików konfiguracyjnych mogą się zmieniać, więc rzeczy mogą się zepsuć w nieoczekiwany sposób. Jeśli chcesz zachować konfigurację w różnych systemach operacyjnych, uważam, że powinieneś to zrobić wyraźnie dla określonych programów.
quodlibetor
1
@ Lekensteyn Właściwie .pubplik jest czasem używany podczas łączenia się z serwerem. Jeśli tajny klucz jest zaszyfrowany, .pubplik służy do wysłania klucza publicznego na serwer. Jeśli serwer odrzuci klucz publiczny, nie trzeba pytać użytkownika o hasło. Tylko jeśli serwer zaakceptuje klucz publiczny, tajny klucz zostanie odszyfrowany. A jeśli masz wiele kluczy ssh-agenti chcesz poinstruować klienta ssh, z którego z nich korzystać, możesz to zrobić, prosząc go o użycie określonego .pubpliku do uwierzytelnienia.
kasperd
33

Klucze kryptograficzne, które możesz chcieć wykonać.

  • ~/.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/*
Anonimowy
źródło
3
Przegapiłeś tę, o którą pytał ( ~/.ssh), ale mimo to dobrą listę :)
Cesium,
Ty też brakowało/etc/ssh
Jan
Świetna lista! Takiej listy trudniej jest znaleźć w Google niż powinna. Dziękujemy za dostarczenie.
Christian
8

Każdy użytkownik ma directoy ~ / .ssh, który zazwyczaj zawiera następujące pliki:

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

Dodatkowo w / etc / ssh / znajdziesz:

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

Są to klucze hosta, klucze identyfikujące ten komputer.

Na pewno chcesz wykonać kopię zapasową wszystkich kluczy prywatnych i publicznych. Maszynę nazywamy domem, a użytkownik użytkownik @ dom. Ta sama osoba ma konto użytkownik @ zdalny i używa logowania na podstawie klucza w obu kierunkach. Co by się stało, jeśli stracisz jeden z kluczowych plików:

  1. Tracisz tożsamość użytkownika @ home. ssh user@remotez domu nie będzie już działać z uwierzytelnianiem opartym na kluczach.
  2. użytkownik @ zdalny traci prawo do logowania się do domu za pomocą swojego klucza. ssh user@homenie będzie już działać zdalnie z uwierzytelnianiem opartym na kluczach.
  3. Tracisz tożsamość hosta. użytkownik @ zdalny zobaczy ostrzeżenie, że klucze hosta uległy zmianie podczas próby ssh user@home. W zależności od konfiguracji uniemożliwi to mu zalogowanie się.
Jan
źródło
Aby odpowiedzieć na pytania, które nie zostały zadane ... :)