>_

LMK

ssh bez passwd

passwd rsa

Asystent Głosowy 🎧

ssh bez passwd

Żeby zalogować się do SSH za pomocą pary kluczy, należy na początku je wygenerować.

Klucze ssh można wygenerować za pomocą jednej linii:

kod
ssh-keygen -t rsa -b 4096 -C "[email protected]"

Parametry oznaczają:

-t metoda szyfrowania(zalecana RSA), -b wielkość klucza, -c komentarz – będzie widoczny w kluczach na serwerze, aby było łatwiej zidentyfikować do kogo należy.

Teraz zostaniemy poproszenie o wskazanie lokalizacji zapisania klucza:

Generating public/private rsa key pair. Enter file in which to save the key (~/.ssh/id_rsa):

Najlepiej jeżeli wciśniemy Enter bez podawania lokalizacji i zostawimy to pole puste. Klucz zostanie wygenerowany w domyślnej lokalizacji jaką jest (~/.ssh/id_rsa):

jeżeli już jakiś klucz mamy, zapyta czy nadpisać odpowiadamy:

Overwrite (y/n)? n

Wydajemy ponownie polecenie

kod
ssh-keygen -t rsa -b 4096 -C "[email protected]"

I wpisujemy, jak ma się nazywać nasz klucz: lmk_one

W ostatnim kroku generator zapyta nas o passphrase czyli hasło szyfrujące klucz, nie musimy go podawać. Natomiast jeżeli je wpiszemy to przy, każdej próbie połączenia będziemy musieli je podać.

Enter passphrase (empty for no passphrase): Enter same passphrase again:

*Hasło, które będziemy wpisywać będzie niewidoczne.

kod
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa): lmk_one
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in lmk_one
Your public key has been saved in lmk_one.pub
The key fingerprint is:
SHA256:smGzqcNwaWcuneoTPN8n2/DZOwi0hD8+LybHRmM8JbQ [email protected]
The key's randomart image is:
+---[RSA 4096]----+
|                 |
|          .      |
|         o .     |
|        . E .    |
|   . ...T+ +     |
|  . C oooo B o   |
|   =oOo- o O +   |
|   .=+=.= B * o  |
|   .+*o  O.=. .o |
+----[SHA256]-----+

Dodanie klucza SSH do ssh-agent:

kod
eval ssh-agent
kod
SSH_AUTH_SOCK=/var/folders/v4/7tdg_zf93h3fn4_t4xfzx91w0000gn/T//ssh-eIQfVGqqm55L/agent.15397; export SSH_AUTH_SOCK;
SSH_AGENT_PID=15398; export SSH_AGENT_PID;
echo Agent pid 15498;
kod
ssh-add ~/.ssh/lmk_one
kod
Identity added: ~/.ssh/lmk_one ([email protected])

Gotowe klucze są wygenerowane i zapisane we wskazanym miejscu. Jeśli nie podałeś ścieżki, tylko samą nazwę pliku, to kluczyki znajdziesz w katalogu .ssh użytkownika.

We wskazanej lokalizacji masz wygenerowane 2 pliki. W moim przypadku jest to katalog .ssh oraz pliki ‘lmk_one’ i ‘lmk_one.pub‘.

Klucz prywatny

Plik bez rozszerzenia w moim przypadku plik o nazwie lmk_one to klucz prywatny. Jak tylko otworzysz plik to pierwsza i ostatnia linia cię o tym poinformuje:

kod
-----BEGIN RSA PRIVATE KEY-----
...
...
...
-----END RSA PRIVATE KEY-----

Plik ten trzymasz u siebie na komputerze, albo w maszynie z której następuje połączenie i nikomu go nie udostępniasz. Jeśli wybrałeś tworzenie kluczyka z passphrase to plik wygląda w taki sposób:

kod
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E6A043B96361C3403079010BDB08DD66
.

Klucz publiczy

Plik o rozszerzeniu .pub to klucz publiczny. Jeśli go otworzysz to na jego początku powinieneś mieć wpis ssh-rsa, a na końcu komentarz który wpisałeś w moim przypadku wygląda to tak:

kod
ssh-rsa ... [email protected]

Ten kluczyk przesyłasz na serwer do którego zamierzasz się połączyć. Możemy to zrobić poleceniem podając login i adres servera:

kod
ssh-copy-id [email protected]

Innym sposobem jest wykonanie polecenia w którym wskazujemy nasz publiczny klucz oraz podajemy login i adres docelowego serwera:

kod
cat ~/.ssh/lmk_one.pub | ssh [email protected] "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Można zrobić to także ręcznie, czyli w katalogu użytkownika który będzie logował się kluczem tworzymy katalog .ssh z uprawnieniami 700 a w nim plik o nazwie authorized_keys z uprawnieniami 600 i zawartości naszego klucza prywatnego:

kod
mkdir $HOME/$User/.ssh;
chmod 700 $HOME/$User/.ssh;
touch $HOME/$User/.ssh/authorized_keys
chmod 600 $HOME/$User/.ssh/authorized_keys
echo "ssh-rsa ... ... [email protected]" >> $HOME/$User/.ssh/authorized_keys

Znak >> oznacza że klucz zostanie dopisany do pliku. Czyli kolejne klucze dodajemy w taki sam sposób i będą one dopisywane jeden pod drugim.

Zgubiłeś public key?

Na koniec mała porada. Jeśli zaginoł ci klucz publiczny to nie panikuj, łatwo możesz go odtworzyć z klucza prywatnego.

Jeśli ktoś np. admin chce dodać twój klucz publiczny do serwera, a Ty nie wiesz, co z nim zrobiłeś, to możesz w prosty sposób go odtworzyć. Przechodzisz do katalogu, w którym trzymasz klucz prywatny (zazwyczaj katalogu .ssh w profilu użytkownika ~/.ssh/) i używasz polecenia poniżej. Podajesz nazwę klucza prywatnego np. lmk_one i nazwę, pod jaką ma być odtworzony klucz publiczny np. lmk_one.pub

kod
ssh-keygen -y -f lmk_one > lmk_one.pub