Ssh Rsa

O co chodzi

Ogólnie rzecz ujmując można się do serwera zalogować za pomocą hasła, albo za pomocą klucza prywatnego.

Klucz prywatny (czyli tak naprawdę duża liczba) można stosować z kilku powodów:

  1. Dla bezpieczeństwa: bardzo trudno go złamać, (nie jest podatny na atak //brute force//), nie da się go zgadnąć - (a hasło można).
  2. Dla wygody. Jak masz na dysku klucz prywatny niezabezpieczony hasłem to możesz się logować na zdalne komputery (zachowując minimum bezpieczeństwa) bez podawania hasła.

Generowanie klucza:

Trzeba wpisać

user@host$ ssh-keygen

Komenda ta:

  1. Spyta o plik w którym należy umieścić klucze
  2. Spyta o hasło
  3. Wyświetli stworzone pliki
  4. I fingerprinta klucza

Wyglądać to będzie tak:

user@host$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX user@host

id_rsa to klucz prywatny, którego nie można nikomu dać, bo pozwalać on będzie się logować na zdalny komputer (jak już wszystko ustawimy).

id_rsa.pub to klucz publiczny który trzeba będzie skopiować na serwer i który dla potencjalnych atakujących jest bezwartościowy.

Jeszcze raz o zastosowaniach

Dla zainteresowanych: patrz tutaj

Bezpieczeństwo

Jeśli zabezpieczysz klucz hasłem, to atakujący do włamania się do komputera będzie potrzebował nie tylko hasła ale i pliku. Czyli żeby się włamać do serwera do którego się logujesz kluczem, będzie musiał się włamać też do komputera na którym klucz leży.

Oczywiście nie używajcie kluczy prywatnych na żadnych ogólnodostępnych komputerach!

Wygoda

Jeśli nie zabezpieczysz - do zalogowania będzie potrzebny tylko klucz. Czyli jak ktoś się włamie na twój komputer - jesteś umoczony.

Święta wojna

Są ludzie którzy piszą że hasło powinno mieć kilkadziesiąt znaków, ale znam też adminów którzy uznają że jeśli klucz nie pozwala się zalogować na konto ROOTA to po co go zabezpieczać.

Ustawianie serwera:

Na serwerze trzeba do katalogu .ssh do pliku authorized_keys skopiować zawartość pliku z kluczem publicznym: id_rsa.pub.
Można to zrobić na przykład tak:

cat id_rsa.pub » /home/<nazwa_użytkownika>/.ssh/authorized_keys

Jeśli serwer jest na kubuntu to tyle!

Używanie do logowania

Teraz do ssh musisz tylko podać klucz służy do tego parametr -i.
Na przykład:

ssh -i /home/user_name/.ssh/id_rsa user_name@serwer

scp -i /home/user_name/.ssh/id_rsa /home/user_name/plik username@serwer:/home/user_name/foo

rsync -a —del -e "ssh -i /home/user_name/.ssh/id_rsa" /home username@serwer:/backup

Żródła:

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License