Skonfiguruj połączenia SSH bez hasła w zaledwie 3 krokach

Witam,

Tutaj zobaczysz, jak zdalnie połączyć się z komputerem SSH wystarczy wpisać hasło za pierwszym razem, a nawet jeśli ponownie uruchomimy oba komputery, nie zostaniemy ponownie poproszeni o podanie hasła.

Ale najpierw zobaczmy krótkie wyjaśnienie, co jest SSH:

SSH jest to protokół, środek komunikacji między dwoma komputerami. Pozwala nam zdalnie zarządzać zespołem. Kiedy uzyskujemy dostęp do innego komputera przez SSH, polecenie, które wprowadzamy w tym terminalu, zostanie wykonane na innym komputerze, w ten sposób zarządzamy nim / kontrolujemy.

Wszystko, co jest przekazywane SSH, jest zaszyfrowany i ma stosunkowo dobre zabezpieczenia.

Teraz zobaczymy, jak skonfigurujemy w zaledwie trzech krokach PC nr 1 mieć dostęp PC nr 2 bez podawania hasła:

Mamy następującą sytuację:

PC # 1 - » Chcesz się połączyć PC nr 2, bez konieczności wprowadzania hasła za każdym razem, gdy próbujesz połączyć się z tym innym komputerem.

PC # 2 - » Masz zainstalowany serwer SSH. To jest jeden PC nr 1 połączy się i zrobi to bez podawania hasła. Na tym komputerze jest użytkownik o nazwie korzeń.

Zacznijmy…

1. En PC nr 1 piszemy co następuje:

  • ssh-keygen -b 4096 -t rsa

Spowoduje to wygenerowanie klucza publicznego. Aby nie pomylić się zbytnio z „kluczami publicznymi i prywatnymi”, wyjaśnię to bardzo prosto.

Przypuśćmy, że masz w kieszeni dwa klucze do domu, jeden dajesz swojej dziewczynie, ponieważ mieszkasz razem, a drugim zostajesz sam, nikomu go nie dajesz. Cóż, ten klucz, który dałeś swojej dziewczynie, pozwoli jej wejść do twojego domu bez mówienia ci, bez pytania o pozwolenie, prawda? to jest klucz publiczny, „klucz”, który umożliwia komputerowi dostęp do innego bez pytania o pozwolenie (to znaczy bez wpisywania nazwy użytkownika i hasła)

Kiedy wydadzą to polecenie, pojawi się:

2. Po prostu naciśnij [Wchodzić], sekundę później ponownie naciskamy [Wchodzić], a sekundę później ponownie naciskamy [Wchodzić]. To znaczy naciskalibyśmy [Wchodzić] w sumie trzy (3) razy, tylko go wciskamy ... nic nie piszemy 🙂

Kiedy to zrobimy, pojawi się coś bardzo podobnego do następującego:

Gotowi, już mamy klucz publiczny ... teraz musimy go dać komukolwiek chcemy (jak na przykładzie, daj go naszej dziewczynie haha)

To czego chcemy PC nr 1 połączyć się z PC nr 2, już w środku PC nr 1 zrobiliśmy wszystkie powyższe w PC nr 2 Nic nie zrobiliśmy. Dobry, PC nr 2 ma na przykład adres IP 10.10.0.5.

3. Włożyliśmy PC nr 1 Następny:

  • ssh-copy-id root@10.10.0.5

To po prostu daje ci klucz publiczny PC nr 1 a PC nr 2to znaczy daje PC nr 2 klucz publiczny PC nr 1Podczas PC nr 1 on zachowuje swój prywatny klucz, wiesz; ten klucz, który nie jest nikomu dany. Ważne jest, aby nie popełniać błędów z użytkownikiem, to znaczy, jeśli użytkownik „korzeń„Nie ma go na PC # 2, spowoduje to błąd, ważne jest, aby było jasne, w którym użytkowniku będziemy do tego używać, oprócz tego, że ten użytkownik, z którym konfigurujemy dostęp bez hasła, będzie tym samym, z którym będziemy mieli dostęp w przyszłości. Gdy to zrobisz, powinno to wyglądać tak:

W poprzednim kroku muszą wprowadzić hasło użytkownika PC nr 2.

I voila ... wszystko jest skonfigurowane ????

Jak nam się wydaje w terminalu, sprawdźmy, czy wszystko naprawdę działa w 100%. Aby przetestować, umieściliśmy:

  • ssh root@10.10.0.5

Jeśli chcą uzyskać dostęp do innego komputera również bez ciągłego wprowadzania hasła (PC nr 3 na przykład), po prostu podajemy mu nasz klucz publiczny i to wszystko, to znaczy po wykonaniu kroku #1 y #2 nie będziemy już musieli tego robić. Jeśli chcemy uzyskać dostęp PC nr 3 na przykład, który ma przez IP 10.10.99.156 po prostu umieściliśmy:

  • ssh root@10.10.99.156

Jak dotąd tutorial.

Wyjaśnij, że poziom bezpieczeństwa, gdy mówimy o SSH jest naprawdę wysoki, metafora, za pomocą której wyjaśniłem niektóre kroki (danie klucza naszej dziewczynie) może nie być najbardziej odpowiednią haha, ponieważ nasza dziewczyna mogłaby dać klucz do ktoś inny. Kiedy mówimy o SSH, zasady bezpieczeństwa są łatwe do wyjaśnienia, gdy próbujemy uzyskać dostęp do naszego komputera (PC nr 1) sprawdza, czy w PC # 2 znajduje się klucz publiczny naszego komputera (w tym przypadku jest, bo tak go konfigurujemy), a następnie, jeśli taki istnieje, to jest proste, sprawdź, czy ten klucz publiczny jest identyczny z naszym kluczem prywatnym (tym, który nikomu go nie daliśmy). Jeśli klucze są identyczne, umożliwia nam dostęp, w przeciwnym razie i ze względów bezpieczeństwa nie pozwala nam na zdalny dostęp do innego komputera.

Więc teraz wiesz ... przekazanie naszej dziewczynie klucza do domu nie jest najbezpieczniejszą rzeczą, ale udostępnianie kluczy i zdalny dostęp do innego komputera przez SSH jest bezpieczny ^ _ ^

Wątpliwości lub pytania, skargi lub sugestie daj mi znać.

Pozdrowienia dla wszystkich.


Treść artykułu jest zgodna z naszymi zasadami etyka redakcyjna. Aby zgłosić błąd, kliknij tutaj.

43 komentarzy, zostaw swoje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   elav <° Linux powiedział

    Naprawdę nie rozumiem, dlaczego jesteś tak paranoikiem co do bezpieczeństwa, popełniasz taki błąd. Jeśli w kroku, w którym jest napisane:

    Enter passphrase (empty for no passphrase)

    Nic nie piszemy, gubimy się, jeśli użytkownik uzyska dostęp do naszego komputera i otworzy terminal, ponieważ automatycznie wykonuje:

    ssh root@10.10.0.5

    Wejdzie bez pytania o hasło.

    1.    KZKG ^ Gaara <° Linux powiedział

      Jeśli ktoś uzyska dostęp do mojego laptopa, tak, będzie mógł uzyskać dostęp do komputera nr 2 bez konieczności wpisywania jego hasła, jednak jak mówisz, mam paranoję na punkcie bezpieczeństwa, czy naprawdę myślisz, że uzyskanie dostępu do mojego laptopa to coś tak prosty? HA HA.

      Kiedy zawsze wstaję, zawsze blokuję ekran, w przeciwnym razie po 30 sekundach mysz lub klawiatura laptopa nie jest aktywna, nadal się blokuje 😉

      1.    Jezus powiedział

        Jeśli ktoś ukradnie twój laptop, bez względu na to, jak bardzo sesja jest zablokowana, uzyskanie dostępu do plików jest trywialne, kwestia 5 minut z Linux-em bootowalnym z USB. Po uzyskaniu dostępu do plików, ponieważ klucz prywatny nie jest chroniony, możesz go użyć bezpośrednio lub lepiej skopiować i uzyskać wygodny dostęp do dowolnego serwera z domu. W rzeczywistości proces jest tak szybki, że nawet nie musiałbyś o tym wiedzieć. W 5 minut idziesz do łazienki czy cokolwiek, wszystko można zrobić.

        Bezpiecznym sposobem jest umieszczenie hasła do klucza prywatnego, a następnie użycie programu ssh-agent, aby zapamiętał hasło na całą sesję (po prostu ssh-add). W ten sposób zapyta o hasło tylko za pierwszym razem, aw praktyce w 90% przypadków będziesz mieć połączenie bez hasła, a ponadto będzie chronione przed kradzieżą lub włamaniami.

        1.    x11tete11x powiedział

          Czy dostęp do plików jest trywialny? Czy kiedykolwiek słyszałeś o szyfrowaniu całego dysku? (luks + cryptsetup)

          1.    Jezus powiedział

            Tak, oczywiście, jeśli masz zaszyfrowany cały dysk to już inna sprawa, ale 90% użytkowników tego nie robi, bo nie wiedzą jak to zrobić iw wielu przypadkach nawet im to nie rekompensuje. Natomiast nie zapisywanie niezaszyfrowanych haseł lub niezabezpieczonych kluczy prywatnych na dysku jest czymś, co każdy może zrobić i jest to ogólnie dobra praktyka.

            Zapisywanie niezabezpieczonych kluczy prywatnych na zaszyfrowanym dysku jest jak parkowanie samochodu przy otwartych drzwiach, ale wynajęcie ochroniarza z dobermanem, aby go chronił. Działa tak, ale o wiele łatwiej i wydajniej jest go bezpośrednio zablokować.

    2.    changoleon powiedział

      MMm nie robią zbyt wiele z lodzikiem, chociaż mogą stworzyć wirtualny interfejs, przypisać adres IP i połączyć się z tym wirtualnym adresem IP, więc nawet jeśli usuną klucz, nie będą w stanie znaleźć maszyny, ponieważ klucz działa tylko dla określonego adresu IP. Zależy to też od tego, czego chcą, u mnie działa idealnie, jak opisuje to kolega, mam w domu prywatny serwer, nie muszę zwiększać bezpieczeństwa, ponieważ ma skonfigurowaną sieć VPN.

  2.   Samquejo powiedział

    I czy to wszystko może dotyczyć terminala Windows, który musi łączyć się z wieloma * NIXami?
    Mam kit, ale mogę też użyć Securecrt (teraz mam to skrypty)

    1.    KZKG ^ Gaara <° Linux powiedział

      W terminalu Windows (cmd) jestem przekonany, że nie, tam nie będzie to możliwe.
      Jednak jeśli użyjesz Putty, możesz spróbować, to może zadziałać.

      Pozdrawiamy i witamy na naszej stronie 😀

    2.    erm3nda powiedział

      Putty akceptuje już parametr -pw w dodatkowych poleceniach. (np. -pw12345)
      W rzeczywistości Super Putty jest fajniejszy niż zwykły Putty. (To rama dla Putty)

      Więc nie musisz tego mówić.

  3.   Higi powiedział

    Dzięki za post, bardzo przydatny. Logowanie się do SSH za wszystko jest trochę nudne.

    1.    KZKG ^ Gaara powiedział

      Witam i bardzo dziękuję za wizytę i komentarz 🙂
      Nic przyjacielskiego, miło wiedzieć, że było to pomocne ... jeśli możemy Ci pomóc w inny sposób, jesteśmy bardziej niż zachwyceni 😉

      Pozdrawiamy i witamy na stronie.

      1.    Adrianext powiedział

        Muszę połączyć się z komputerem PC Windonws z mojego linuxa, tak jak robię to z terminala

  4.   Roberto powiedział

    Świetnie… to naprawdę inspiruje do oglądania tego typu samouczków, sprawia, że ​​chcę również podzielić się moimi i tak już uproszczonymi doświadczeniami, aby społeczność mogła z nich skorzystać. Bardzo dziękuję z Salwadoru.

  5.   Jose Gregorio powiedział

    Łączę się z maszyną z systemem Ubuntu do takiej, która ma Debiana, ale wyświetla mi się błąd uniemożliwiający uwierzytelnienie i dlatego pyta mnie o hasło ... dlaczego tak się stanie? Czy wersje ssh-keygen będą się różnić lub co się dzieje?

    1.    KZKG ^ Gaara powiedział

      Wpisz tutaj błąd, który daje Ci, aby móc Ci pomóc lepiej 😉
      Możesz także spróbować umieścić to w terminalu:
      sudo mv $HOME/.ssh/known_hosts /opt/

      To, co to robi, to czyszczenie połączeń (historii połączeń) SSH, które miałeś.

  6.   Kinon powiedział

    A gdybym chciał użyć tego samego klucza publicznego dla kilku serwerów, czy mógłbym to zrobić, czy też muszę utworzyć klucz dla każdego serwera, do którego chcę uzyskać dostęp? I tak spróbuję, ale na jakimś bezużytecznym serwerze, żeby nie zepsuć czegoś pożytecznego.

    Dziękuję i pozdrawiam.

    1.    KZKG ^ Gaara powiedział

      Ponieważ zrobiłem to na swoim laptopie, to dla każdego serwera inny klucz, tak naprawdę myślę, że nie da się użyć tego samego klucza dla kilku ... bo ID każdego serwera jest niepowtarzalne, jak odcisk palca 🙂

      pozdrowienia

      1.    Kinon powiedział

        Witaj panie piasku. Czytałem klucze i odkryłem, że para kluczy (publiczny i prywatny) służy klientowi serwera do wysyłania i odbierania wezwań, a tym samym do identyfikacji siebie nawzajem, więc nie ma to nic wspólnego z hasłem, którego używasz do uzyskania dostępu do serwera, ta ostatnia służy do „wklejenia” klucza publicznego do zaufanych kluczy serwera. Możesz więc używać go w tylu, ilu chcesz lub potrzebujesz.

        Nie wiem, czy się wytłumaczyłem, ale żartem jest to, że aby móc używać swojej pary kluczy na innych serwerach, po zapoznaniu się z samouczkiem, wystarczy zrobić:

        ssh-copy-id other.user@otra.ip
        zapisz swoje hasło do tego innego serwera

        I gotowy.
        pozdrowienia

  7.   Raul powiedział

    Witam, dzięki za przewodnika, tylko on mi pomógł. Teraz, gdy chcę to zrobić na innej parze komputerów, otrzymuję następujące informacje:

    $ ssh-copy-id -p 4000 lm11@148.218.32.91

    Zły port 'umask 077; test -d ~ / .ssh || mkdir ~ / .ssh; cat >> ~ / .ssh / Authorized_keys '

    Dzięki za pomoc.

  8.   niemiecki powiedział

    Zrobiłem, co nam powiedziałeś, ale wciąż prosi mnie o podanie hasła. Wyjaśniam to połączenie, które tworzę między dwoma serwerami Linux Red Hat ... Co jeszcze mogłoby to być?

    Patrzyłem już na / etc / ssh / sshd_config

    Już zrestartowałem oba serwery

    PC2 = czerwona czapka linux 6.4
    PC2 = czerwona czapka linux 5.1

    1.    Xavier powiedział

      Aby usługa ssh działała, musi być poprawnie skonfigurowana (plik / etc / ssh / sshd_config na PC2).

  9.   niemiecki powiedział

    korekta…

    PC1 = Centos 6.4
    PC2 = Red Hat 5.1

  10.   Grivas powiedział

    Witajcie koledzy, mam potrzebę ustanowienia relacji zaufania między 1 serwerem Linux Centos 5.3 a Unix Sco5.7, ale mam problem, że podczas wykonywania kroku 3 kopiowania klucza z Linuksa do Uniksa otrzymuję komunikat / usr / bin / ssh-copy-id: BŁĄD: Nie znaleziono tożsamości, dlaczego tak się dzieje?

    dzięki

  11.   namek powiedział

    Postępowałem zgodnie z samouczkiem krok po kroku. Nie daje mi to żadnego błędu, ale na końcu, kiedy łączę się z PC1 na PC2, za każdym razem pyta mnie o hasło roota.

    Czy ktoś myśli, co to może być?

  12.   Rabować powiedział

    Wygląda na to, że po wygenerowaniu klucza należy wykonać ssh-add, aby agent uwierzytelniający mógł go użyć.

  13.   andrea colodro powiedział

    Jak skasuję klucz dostępu to nic nie rozpoznaje, zostałem zhakowany, pomocy, nic nie wpisuje

  14.   Jordan acosta powiedział

    Dziękuję bardzo, zadziałało idealnie

  15.   mini miniyo powiedział

    Bardzo dziękuję za przewodnika! Jest to bardzo łatwe i przydaje się, gdy masz serwery chodzące i nie musisz wprowadzać kluczy, a tym samym automatyzować rzeczy 😀

  16.   erm3nda powiedział

    Dziękuję.

    Nie byłem świadomy użycia ssh-copy-id i było to całkiem automatyczne.
    Prawda jest taka, że ​​byłem do momentu wpisania hasła, więc zapisuję je z parafrazą DEFAULT, która jest utrzymywana podczas sesji.

    Nie mam nic przeciwko pisaniu tego raz za każdym razem, gdy włączam komputer, rolka musi go wkładać za każdym razem, gdy się rozłącza lub takie rzeczy 😀

    SSH Nie Jutsu!

  17.   lizać powiedział

    Halo

    dobry poradnik ... ale czy chcę przekazywać informacje ??? jak mogę to zrobić?

  18.   diego gonzalez powiedział

    Witam, Twój wkład jest bardzo ciekawy, ale mam kilka wątpliwości na podobny temat

  19.   Carlos Hernandez powiedział

    Hey.

    Spróbuj wykonać powyższe kroki, ale podczas próby skopiowania klucza na serwer 2 (PC2) zostanie wyświetlony komunikat, że polecenie nie istnieje.

    bash: ssh-copy-id: nie znaleziono polecenia

    Czy mogę skopiować klucz ręcznie?

  20.   heidy powiedział

    Świetny!! Szukałem wyjaśnienia tak prostego i działało idealnie

    dzięki!

  21.   Jarumał powiedział

    Znakomity wkład.
    Dziękuję bardzo, bardzo mi pomogło.

  22.   Piotr powiedział

    Cześć, zastanawiam się, czy istnieje sposób na wykonanie tego polecenia ssh-copy-id. Ponieważ instaluję Open ssh dla Windows, ssh działa dla mnie w DOS, ale nie ma tego polecenia ssh-copy-id. Chciałbym wiedzieć, jak wysłać ten klucz publiczny na inny serwer linux (serwer linux). Wielkie dzięki.

  23.   Piotr powiedział

    Cześć. Muszę ustanowić relację zaufania między serwerem Linux a komputerem z systemem Windows. Zainstaluj SSH dla Windows i działa dla mnie. Ale to polecenie ssh-copy-id nie jest dostępne w tym narzędziu.

    Znają inny sposób na zrobienie tego bez użycia ssh-copy-id.

    Dziękuję Wam bardzo za wasze komentarze.

  24.   Andrinho powiedział

    Ale chodzi o to, aby móc połączyć się bez hasła, jeśli wstawimy hasło, poprosi nas o połączenie, a nie było to celem tego

  25.   Andrinho powiedział

    Bardzo mi się przydał moduł FP w moim komputerze, dzięki 🙂

  26.   Vicent powiedział

    Dziękujemy!

  27.   x-mężczyzna powiedział

    Niektórzy martwią się, jak denerwujące może być wpisywanie hasła (hasła), ponieważ, jak powiedzieli powyżej, jest to „agent użytkownika” i że mam go również skonfigurowany z Keepass i funkcją automatycznego wpisywania, więc Wywołuję terminal iz gotową kombinacją klawiszy, które skonfigurowali mam też „aliasy” dla każdego żądania i wszystko jest bardzo proste.

    Niezły tutorial.

    Baw się dobrze !!

  28.   Felipe Oyarce powiedział

    Bardzo dobre info 🙂 ale mam pytanie ...

    Mam PC10, gdzie przechowuję informacje, informacje są wysyłane z pc1 - pc2 - pc3, do PC10, jak mogę sprawić, by pc1, pc i pc3 używały tego samego klucza, aby uzyskać dostęp do PC10 bez klucza.

    Twoje zdrowie…

  29.   Nestor powiedział

    Jak mogę wyświetlić listę tego, co jest na komputerze1 w bash maszyny2 bez przechodzenia do ssh ip @ hosts do bash maszyny1. Nie wiem, czy rozumiem xD

  30.   jaskółka oknówka powiedział

    Od tej publikacji minęło 10 lat i odwiedzam ją, kiedy tylko potrzebuję. Podobnie jak niektóre inne tutoriale tutaj, przetrwały próbę czasu. Dziękuję i pozdrawiam!