skopiuj klucze prywatne ssh na inny komputer

52

Potrzebuję użyć innego komputera, aby uzyskać dostęp do mojego serwera ssh. Wynika to z faktu, że ostatnio wdrożony VPN na mojej uczelni nie działa na moim obecnym komputerze i straciłem dostęp do serwera.

I ssh zaszyfrowane klucze ssh. Czy mogę skopiować te klucze na nowy komputer (na którym działa VPN). Próbowałem skopiować pliki id_rsai id_rsa.pubdo ~/.sshfolderu, ale nie rozpoznaje kluczy i nie ma monitu o podanie hasła w celu odszyfrowania kluczy.

EDYCJA: Nie mogę uzyskać dostępu do serwera, aby wygenerować nową parę kluczy dla nowego komputera i jestem poza krajem, więc nie mogę fizycznie uzyskać do niego dostępu.

Dzięki.

benj
źródło
Czy id_rshliterówka jest „ ”?
ændrük
1
Możesz dowiedzieć się więcej na temat problemu, próbując ssh -v -i ~/.ssh/id_rsa ssh-server.
ændrük
próbowałem tego. Wydaje się, że wysyła klucze, ale nigdy nie prosi o hasło, aby je odszyfrować. Otrzymuję również dziwny ogólny komunikat „Roaming niedozwolony przez serwer”. Zgadnij, klucze prywatne po prostu nie są przeznaczone do kopiowania;). Wygląda na to, że będę musiał zaufać komuś, kto ma fizyczny dostęp, aby ręcznie zalogować się na moim serwerze i zmienić ustawienia ssh. Dzięki za pomoc.
benj
Klucze prywatne nigdy nie powinny być kopiowane! TO RYZYKO BEZPIECZEŃSTWA. Wygeneruj nowe klucze dla każdego nowego urządzenia !!!!
Ether

Odpowiedzi:

66

Sprawdź uprawnienia i własność pliku klucza prywatnego. Z podręcznika ,

Pliki te zawierają poufne dane i powinny być czytelne dla użytkownika, ale niedostępne dla innych (odczyt / zapis / wykonanie). ssh po prostu zignoruje plik klucza prywatnego, jeśli jest on dostępny dla innych.

Zazwyczaj kluczowe pliki powinny wyglądać tak,

$ ls -l ~/.ssh/id_rsa*
-rw------- 1 benj benj 1766 Jun 22  2011 .ssh/id_rsa
-rw-r--r-- 1 benj benj  388 Jun 22  2011 .ssh/id_rsa.pub

które możesz egzekwować poprzez:

$ chown benj:benj ~/.ssh/id_rsa*
$ chmod 600 ~/.ssh/id_rsa
$ chmod 644 ~/.ssh/id_rsa.pub
ændrük
źródło
2
dzięki. Warto wiedzieć. Podczas kopiowania pliku na inny komputer wydaje się, że uprawnienia zmieniają się na tego użytkownika. Na wszelki wypadek uruchomiłem skrypty chmod i chown. Niestety nie pomogło mi to.
benj
@John ツ To może być dla mnie część problemu, ale zdawały się być inne problemy. W końcu udało mi się kogoś fizycznie zalogować do serwera i skonfigurować nowy klucz. Ale zaakceptuje to, ponieważ prawdopodobnie obejmuje kluczową kwestię.
benj
To działało dla mnie @benj.
Sinthia V
14

Spróbuj uruchomić się ssh-addprzed połączeniem SSH z serwerem - powinieneś zostać poproszony o podanie hasła, a następnie kolejne sshpołączenia mogą używać twojego klucza prywatnego.

ssh-addPolecenie dodaje klucze do środka klucza.

gertvdijk
źródło
1
Nie sądzę, że to jest problem, ponieważ 1) klient SSH poradzi sobie bez agenta klucza funkcjonalnego, 2) serwer nie zareaguje komunikatem „niedozwolony roaming” i 3) klient ssh będzie miał swój własny komunikat o błędzie podczas rozmowy z kluczowym agentem nie udaje się. Uczyniłem moje myśli na ten temat odpowiedzią .
gertvdijk
To rozwiązało problem. Zobacz także dokumentację Github na ten temat .
Ionică Bizău
8

Zaszyfrowane klucze prywatne przechowują odpowiadający im klucz publiczny niezaszyfrowany . W ten sposób klient SSH może połączyć się ze zdalnym serwerem bez pytania o hasło (w tym momencie oferuje tylko część publiczną). Za każdym razem, gdy serwer akceptuje klucz publiczny, klient na twoim komputerze chce odszyfrować klucz prywatny i poprosi o podanie hasła.

Teraz, ilekroć serwer akceptuje połączenie tylko z określonego adresu IP, jest to odrzucane już w pierwszym kroku i wyjaśnia komunikat otrzymany z serwera „Roaming niedozwolony przez serwer”.

Więc przypuszczam, że twój serwer jest w jakiś sposób ograniczony, aby zezwalać tylko na określone adresy IP dla tego klucza. Możesz to zrobić na kilka sposobów, ale jest to powszechne w ~/.ssh/authorized_keys:

from="192.168.1.2" ssh-rsa AAAAB3NzaC[...]

Aby udowodnić, że możesz odczytać klucz publiczny z zaszyfrowanego klucza prywatnego bez hasła, uruchom:

ssh-keygen -y -f /path/to/private/key
gertvdijk
źródło
1
Jest to dobry pomocny proces uzyskiwania odpowiedzi w przypadku problemów z połączeniem SSH. Dziękuję Ci.
Sinthia V