Mam konta na dwóch komputerach: H1 i H2. Utworzyłem klucze ssh na H1 i zainstalowałem na S1. Mogę teraz ssh do S1 z H1. Chcę zrobić to samo z H2. Jak zainstalować klucze ssh wygenerowane na H1 na H2?
Ponieważ ssh-copy-idjest to bardziej głupie (bez zastępowania istniejących kluczy lub przypadkowego kopiowania klucza prywatnego zamiast klucza publicznego ) i mniej znane rozwiązanie, rozważ zaakceptowanie jednej z tych odpowiedzi jako odpowiedzi zaakceptowanej.
agtoever
Odpowiedzi:
28
Edytowane: jeśli posiadasz oba komputery, możesz udostępnić swój klucz prywatny. Ale to rozwiązanie nie jest bezpieczne w przypadku skradzionego notebooka lub maszyn, których nie posiadasz.
Możesz skopiować swoje klucze prywatne z H1 do H2, jeśli chcesz użyć tego samego klucza prywatnego, aby móc zalogować się z H2 do S1. Kiedy jesteś w H1, wykonaj polecenia:
Ostrzeżenie! Spowoduje to usunięcie i zastąpienie dowolnego klucza prywatnego, który miałeś w H2.
Lepszym sposobem jest wygenerowanie nowych kluczy prywatnych na H2 ( ssh-keygen) i zainstalowanie ich części publicznej na S1 za pomocą ssh-copy-idutil. W tym bezpieczniejszym przypadku będziesz mieć dwa zestawy kluczy; jeden służy do logowania H1-S1, a drugi do logowania H2-S1. W S1 będą autoryzowane dwa klucze publiczne. Będziesz mógł odwołać dowolne z nich lub oba (na przykład, gdy notebook zostanie skradziony lub właściciel urządzenia zdecyduje o wyłączeniu konta i ponownym użyciu wszystkich plików).
Kopiowanie klucza prywatnego nie jest dobrym pomysłem. Posiadanie jednego klucza w wielu lokalizacjach 1. zwiększa jego podatność na zagrożenia, 2. zwiększa ryzyko utraty kontroli nad wszystkimi lokalizacjami, 3. nie pozwala na wyłączenie dostępu z jednej lokalizacji. Z punktu widzenia bezpieczeństwa należy wygenerować nową parę kluczy w każdej lokalizacji - rozwiązanie od Mu Qiao.
ssh-copy-id to skrypt, który używa ssh do zalogowania się na zdalnym komputerze i dołączenia wskazanego pliku tożsamości do pliku ~ / .ssh / Author_keys tego komputera.
@ Chcę zrobić ssh z H2 do S1. Chcę przenieść i zainstalować mój prywatny i publiczny klucz z H1 do H2. Czy to zrobi?
Bruce
3
@Bruce nie, musisz ponownie wygenerować klucze na h2 i użyć tego polecenia, aby skopiować klucze. Innym podejściem jest udostępnianie katalogu domowego h1 i h2.
Mu Qiao,
9
Użyj dwóch kluczy prywatnych
Skonfiguruj H2 przy użyciu tego samego procesu (ale nie tego samego klucza prywatnego), co podczas konfigurowania H1:
Nigdy nie ma dobrego powodu, aby skopiować klucz prywatny z innego komputera. Jeśli jeszcze nie wygenerowałeś nowego klucza prywatnego na H2, zrób to teraz. Wygeneruj również odpowiedni klucz publiczny. W terminalu na H2
rodzaj: ssh-keygen -t rsa
Skopiuj klucz publiczny H2 na serwer. W terminalu na H2
(ale użyj swojej rzeczywistej nazwy użytkownika na S1 i nazwie hosta S1, a następnie wpisz swoje hasło na S1, gdy o to poprosi).
Spowoduje to zainstalowanie klucza publicznego stacji roboczej w ~/.ssh/authorized_keyspliku dla tego użytkownika na serwerze.
Nie ma kroku 3. Od teraz możesz zalogować się do S1 z poziomu H2, a także zalogować się do S1 z poziomu H1.
Detale
Zakładam, że tak naprawdę pytasz
Mam serwer („S1”)
Loguję się na mój serwer z mojego osobistego laptopa („H1”)
Chcę również zalogować się do mojego serwera ze stacji roboczej („H2”).
Jak to zrobić?
Podejrzewam, że mógłbym po prostu zalogować się przy użyciu tego samego hasła z obu miejsc. To nie może być właściwy sposób, ponieważ wszyscy twierdzą, że uwierzytelnianie za pomocą klucza publicznego jest znacznie lepsze niż hasła. (za)
Przypuszczam, że mógłbym po prostu skopiować klucz prywatny z laptopa na stację roboczą. To nie może być właściwy sposób, ponieważ wszyscy mówią, że klucz prywatny nigdy nie powinien opuszczać komputera klienta.
Ludzie wbijali sobie w głowę, że jedno konto na serwerze ma jedną nazwę użytkownika i, oczywiście, jedno autoryzowane hasło.
Systemy klucza publicznego, takie jak ssh, są lepsze niż system haseł: jedno konto na serwerze ma jedną nazwę użytkownika i dowolną liczbę autoryzowanych kluczy publicznych , wszystkie wymienione w ~/.ssh/authorized_keyspliku.
@ Chcę zrobić ssh z H2 do S1. Chcę przenieść i zainstalować mój prywatny i publiczny klucz z H1 do H2. Czy to zrobi?
Bruce
2
Jeśli jesteś zalogowany do S1 lub H1 (które teraz mają twój klucz), używając ssh-copy-id pozwoli ci przenieść swój klucz publiczny (nie prywatny) do H2. Ogólnie najlepiej jest ograniczyć liczbę komputerów, na których zainstalowany jest klucz prywatny. Staraj się trzymać go na kilku bezpiecznych komputerach, aby zapobiec jego utracie.
Jak skopiować mój klucz prywatny do H2?
Bruce
0
Do przenoszenia kluczy SSH z jednego komputera na drugi. Wystarczy skopiować cały folder z ~ / .ssh z H1 (stary komputer) do folderu zawartości ~ / .ssh nowego komputera H2.
ssh-copy-id
jest to bardziej głupie (bez zastępowania istniejących kluczy lub przypadkowego kopiowania klucza prywatnego zamiast klucza publicznego ) i mniej znane rozwiązanie, rozważ zaakceptowanie jednej z tych odpowiedzi jako odpowiedzi zaakceptowanej.Odpowiedzi:
Edytowane: jeśli posiadasz oba komputery, możesz udostępnić swój klucz prywatny. Ale to rozwiązanie nie jest bezpieczne w przypadku skradzionego notebooka lub maszyn, których nie posiadasz.
Możesz skopiować swoje klucze prywatne z H1 do H2, jeśli chcesz użyć tego samego klucza prywatnego, aby móc zalogować się z H2 do S1. Kiedy jesteś w H1, wykonaj polecenia:
Ostrzeżenie! Spowoduje to usunięcie i zastąpienie dowolnego klucza prywatnego, który miałeś w H2.
Lepszym sposobem jest wygenerowanie nowych kluczy prywatnych na H2 (
ssh-keygen
) i zainstalowanie ich części publicznej na S1 za pomocąssh-copy-id
util. W tym bezpieczniejszym przypadku będziesz mieć dwa zestawy kluczy; jeden służy do logowania H1-S1, a drugi do logowania H2-S1. W S1 będą autoryzowane dwa klucze publiczne. Będziesz mógł odwołać dowolne z nich lub oba (na przykład, gdy notebook zostanie skradziony lub właściciel urządzenia zdecyduje o wyłączeniu konta i ponownym użyciu wszystkich plików).źródło
Posługiwać się
ssh-copy-id
STRESZCZENIE
OPIS
źródło
Użyj dwóch kluczy prywatnych
Skonfiguruj H2 przy użyciu tego samego procesu (ale nie tego samego klucza prywatnego), co podczas konfigurowania H1:
rodzaj:
ssh-keygen -t rsa
rodzaj:
ssh-copy-id [email protected]
(ale użyj swojej rzeczywistej nazwy użytkownika na S1 i nazwie hosta S1, a następnie wpisz swoje hasło na S1, gdy o to poprosi).
Spowoduje to zainstalowanie klucza publicznego stacji roboczej w
~/.ssh/authorized_keys
pliku dla tego użytkownika na serwerze.Detale
Zakładam, że tak naprawdę pytasz
Jak to zrobić?
Ludzie wbijali sobie w głowę, że jedno konto na serwerze ma jedną nazwę użytkownika i, oczywiście, jedno autoryzowane hasło.
Systemy klucza publicznego, takie jak ssh, są lepsze niż system haseł: jedno konto na serwerze ma jedną nazwę użytkownika i dowolną liczbę autoryzowanych kluczy publicznych , wszystkie wymienione w
~/.ssh/authorized_keys
pliku.( więcej szczegółów ).
źródło
Czy ssh-copy-id wykona za ciebie zadanie: http://linux.die.net/man/1/ssh-copy-id ?
źródło
Do przenoszenia kluczy SSH z jednego komputera na drugi. Wystarczy skopiować cały folder z ~ / .ssh z H1 (stary komputer) do folderu zawartości ~ / .ssh nowego komputera H2.
Spróbuj teraz:
Najprawdopodobniej otrzymasz ostrzeżenie o uprawnieniu, aby naprawić to uruchomienie:
Teraz znowu:
Teraz będzie działać dobrze.
źródło