Ponownie instaluję pulpit z systemem Linux. Jak mogę nadal logować się na SSH?

15

Dawno temu wygenerowałem parę kluczy ssh-keygeni użyłem, ssh-copy-idaby umożliwić logowanie do wielu programistycznych maszyn wirtualnych bez konieczności ręcznego wprowadzania hasła. Przesłałem również mój klucz publiczny do GitHub, GitLab i podobnych w celu uwierzytelnienia w repozytoriach git za pomocą git@zamiast https://.

Jak mogę ponownie zainstalować pulpit z systemem Linux i zachować wszystkie te dane logowania? Czy ~/.ssh/wystarczy wykonać kopię zapasową i przywrócić ?

Szef kuchni Tony
źródło
2
Jest to jeden z wielu powodów, dla których podczas instalowania nowego środowiska Linux powinieneś mieć partycję /i kolejną dla/home
olegario
4
@olegario Nie zgadzam się. Korzystałem z Linuksa przez większą część mojego życia i obecnie administruję> 100 maszynami, ale zawsze znajdowałem osobną /homepartycję, zarówno kłopotliwą, jak i ograniczoną. Rozumiem, że niektórzy ludzie uważają to za przydatne i to w porządku, ale nie sądzę, aby i tak była odpowiednia pomoc w sytuacji PO.
marcelm
5
Partycja nie ma tak naprawdę żadnej przewagi nad samym tworzeniem kopii zapasowych i przywracaniem danych /homeza pomocą tarlub w jakikolwiek inny sposób, chyba że planujesz ponownie użyć istniejących partycji, co i tak jest ryzykowne w przypadku większości instalatorów systemu operacyjnego, którzy chętnie je wyczyszczą, chyba że znajduje się na osobnym dysku fizycznym usuń podczas instalacji.
R .. GitHub ZATRZYMAJ POMOC W LODZIE
1
Po zakończeniu ponownej instalacji, bez względu na to, jak dokładnie to zrobisz, możesz ponownie rozważyć posiadanie tylko jednej pary kluczy do wszystkiego.
CVn

Odpowiedzi:

29

Musisz przynajmniej wykonać kopię zapasową kluczy prywatnych. Nie można ich zregenerować bez konieczności wymiany klucza publicznego wszędzie. Zwykle będą miały nazwę zaczynającą się od id_i bez rozszerzenia.

Klucze publiczne mogą być regenerowane z tym poleceniem: ssh-keygen -y -f path/to/private/key. Twoja konfiguracja użytkownika (plik o nazwie „config”) może być również przydatna, jeśli ustawiłeś jakieś domyślne ustawienia.

Wszystkie te pliki zwykle znajdują się w ~ / .ssh, ale najpierw sprawdź!

l0b0
źródło
28

W przypadku wychodzących połączeń SSH wystarczy wykonać kopię zapasową pary kluczy. Dla wygody możesz po prostu wykonać kopię zapasową ~/.sshkatalogu i przywrócić go do nowej instalacji.

Zwykle wystarczy wykonać kopię zapasową i przywrócić ten katalog, ale możliwe jest przechowywanie kluczy w innym miejscu za pomocą niestandardowych ustawień w ~/.ssh/configlub /etc/ssh/ssh_config, lub za pomocą agenta SSH i ssh-addodebrać klucze do użycia w połączeniach wychodzących z dowolnej lokalizacji .

Jeśli masz przychodzące połączenia SSH, możesz również rozważyć utworzenie kopii zapasowej kluczy hosta SSH pod adresem /etc/ssh/ssh_host_*. Jeśli nie utworzysz ich kopii zapasowej, nowe klucze hosta zostaną automatycznie wygenerowane sshdpodczas pierwszego uruchomienia nowej instalacji, a wszelkie przychodzące połączenia SSH pokażą „Niezgodność klucza hosta SSH, ktoś może zrobić coś złego!” komunikat o błędzie i zwykle odrzuca połączenie, chyba że ktoś usunie stary klucz hosta na kliencie SSH i wyraźnie zaakceptuje nowy.

Wygląda na to, że nie masz przychodzących połączeń SSH na komputerze stacjonarnym z systemem Linux, więc wspominam o tym tylko ze względu na kompletność. Ale w systemach serwerowych lub jeśli masz znaczną konfigurację opartą na SSH, potwierdzenie zmiany klucza hosta może być dużym problemem.

telcoM
źródło
1
+1 To powinna być zaakceptowana odpowiedź. Aby zalogować się z innych komputerów, musisz zachować klucz hosta, zwykle przechowywany w /etc/ssh, nazwy plików to ssh_host_*(kilka plików dla różnych algorytmów).
rexkogitans
2
Należy pamiętać, że jeśli jesteś SSHing w , może chcesz obrócić hosta klucze i tak; ale to zależy od twojej sytuacji w zarządzaniu kluczami (np. klucze zostały ostatnio wygenerowane lata temu, a jeszcze nie masz /etc/ssh/ssh_host_ed25519_key, lub masz klucz RSA 1024, a nawet klucz DSS).
Piskvor opuścił budynek