Nawiązanie połączenia ze zdalnym hostem

ssh user@nazwa_serwera

Autoryzacja za pomocą klucza

Dwiema podstawowymi metodami autoryzacji do serwera SSH jest hasło oraz klucz prywatny. Dzięki pary kluczy to znaczy klucza prywatnego oraz klucza publicznego można zwiększyć bezpieczeństwo serwera SSH. Klucz publiczny można udostępniać publicznie i nie stanowi to zagrożenia, natomiast klucz prywatny należy zabezpieczyć dobrym hasłem i przechowywać go zdala od ciekawskich.

Generowanie pary kluczy

ssh-keygen
usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa]
                  [-N new_passphrase] [-C comment] [-f output_keyfile]
       ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
       ssh-keygen -i [-m key_format] [-f input_keyfile]
       ssh-keygen -e [-m key_format] [-f input_keyfile]
       ssh-keygen -y [-f input_keyfile]
       ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
       ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]
       ssh-keygen -B [-f input_keyfile]
       ssh-keygen -D pkcs11
       ssh-keygen -F hostname [-f known_hosts_file] [-l]
       ssh-keygen -H [-f known_hosts_file]
       ssh-keygen -R hostname [-f known_hosts_file]
       ssh-keygen -r hostname [-f input_keyfile] [-g]
       ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
       ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines]
                  [-j start_line] [-K checkpt] [-W generator]
       ssh-keygen -s ca_key -I certificate_identity [-h] [-U]
                  [-D pkcs11_provider] [-n principals] [-O option]
                  [-V validity_interval] [-z serial_number] file ...
       ssh-keygen -L [-f input_keyfile]
       ssh-keygen -A
       ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
                  file ...
       ssh-keygen -Q -f krl_file file ...

Tworzymy katalog przeznaczony na klucze

mkdir ~/.ssh/klucze

Generujemy parę kluczy o wielkości 4096 bitów i nazwie klucz-rsa w katalogu ~/.ssh/klucze/, jeśli nie podamy nazwy klucza zostanie wygenerowany klucz o nazwie id_rsa i id_rsa.pub, tak wygenerowane klucze będą użyte jako standardowe.

ssh-keygen -b 4096 -f ~/.ssh/klucze/klucz-rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/klucze/klucz-rsa.
Your public key has been saved in /home/user/.ssh/klucze/klucz-rsa.pub.
The key fingerprint is:
SHA256:ETL9Q77azhtBr8jhxOR0bh6HguZXlmHApqWqWDosg90 user@hostname
The key's randomart image is:
+---[RSA 4096]----+
|      ooo        |
|       o=o.      |
|       =++=      |
|      o* *+=     |
|     .o S Xoo    |
|  . .o + O.=     |
|o= o  . =o+      |
|B.o E  .....     |
|.o       .+.     |
+----[SHA256]-----+

Klucz publiczzny

cat .ssh/klucze/klucz-rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAAD6q3LoFyRZ1dyVtvlxJNxyLDg22rIgby8R6SatHkQ== user@hostname

Klucz prywatny

cat .ssh/klucze/klucz-rsa
-----BEGIN OPENSSH PRIVATE KEY-----
UWobH5nA/W7JaxBpzQiKexWng5Lr5kWpQki1zoWO1lVBi0UdUE2WPQ0g1EfmtDedTD1xO5
sBi8ZLABCPTnbZzovR41vKunZPkGWoci4/RTksQW9vebzc6q3LoFyRZ1dyVtvlxJVqMxlm
z3A0OsXrGEQ+93pzo5L9fUNxyLDg22rIgby8R6SatHkQAAB1D80VqMAnYgsdfSXwQYoev2
1d4pOZsQ/cVweIvXpJ0UClScqMRjrxwBylZ5vHQLWZIXiZ41Fg89ey/xjCTgmh9+3/1eXg
URygVuWRTTV/4FbhJf7tOsR8sPXqkeGyKoL3uQs7YSgOxngm/FzgoHShSEHF+Qyssyx796
CO4yC/pVLucH2uS9phDfoIOBTaIx4yzMmZoEgUQlJCc37ZJ+GB9urXDqDazKugnORGb04i
9KROom25cMHL/OBZfbsLitwUgcSRRpt3JVHqxKmcTo6Edb4N9qAdJMqOruemDhBHThe89V
KcJ5ZGoSESe8ZAVX73qCN9OqXbojG5TVwrudB/7QidCsDNmrIRyNp0auCEkyAPPpSo8V1e
m3yZe9Q33iKMvgFJ2S30SS5+dAtVPNrKnavL0gzxLuBt2rFpecUOjmAKzYgRw+A8NDVbp0
sdzZIcxILDM/YrTMpo648sJJo=

-----END OPENSSH PRIVATE KEY-----

Przygotowanie konta po stronie serwera do autoryzacji za pomocą klucza.

W plikku ~/.ssh/authorized_keys umieszczamy swój klucz publiczny, w pliku można umieścić kilka kluczy jeden klucz na linię.

touch ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

Przeskoczenie na kolejnego hosta

ssh -J user@server 192.168.0.1

Date: 2020-10-24T15:22:01+02:00