Serwer narzędziowy/Klucze SSH


Korzystanie z kluczy SSH ułatwia dostęp do serwera - gdyż nie potrzeba wtedy podawać hasła (przydatne podczas otwierania wielu sesji na raz, podczas kopiowania plików itp.).

Każdy klucz składa się z dwóch połówek: publicznej i prywatnej.

  • Połówka prywatna (zazwyczaj przechowywana w pliku o nazwie identity lub id należy wyłącznie do właściciela klucza i należy ją chronić przed dostępem osób niepowołanych. Dodatkowo, zazwyczaj połówka prywatna jest chroniona hasłem.
  • Połówka publiczna (zazwyczaj przechowywana w pliku o nazwie identity.pub lub id.pub służy do sprawdzenia, czy osoba podczas logowania się używa pasującej połówki prywatnej klucza.

W ten sposób każdy, kto ma połówkę publiczną (np. nasz serwer narzędziowy) może sprawdzić, czy druga strona (użytkownik klucza) posiada właściwą połówkę prywatną. Połówka publiczna klucza nie zawiera informacji pozwalającej na podszycie się pod właściciela klucza - dlatego może być dostępna publiczne (opublikowania na stronie WWW, przesłana mailem itp.).

Przykładowy klucz publiczny SSH może wyglądać tak (w formacie OpenSSH):

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAs2HFzCLt0SyJgRpXpOMXV4JgMokhZem8T5Sh5qfH
rP5oddAEBy416MUytVs+RYDvQs66NMlmMUbfpivs1ExFPz7iNNpv0mMxC81pcAbxn+gBOMHx1ZeN
Az3sOGB/mcSMSdFcwALFDWWpcy3TGSViMgeWIO8GZL4bHCUcPxCuaZMvvzdHjKFWMm7aZfbEUwvd
KeyA0qT3qXmLzz1Hqr2yGQGAVVVuD6X85En4j0vfo574tOooI859oY6CtAVuliGICBiqyILPwDD/
UL5o+ecSLTCumjtUPiiCBX1cfB6gz1hCx9u/L2fwSKMgmMPQMveQDAflSmkTzm1lwLwxarHpcvug
feaVUFwYr9VuF5uM8QkJiNskIWnaLy94B7uXF90dtPobOhpvKxT3iM2OVsWIKNcllBe6EDqzN7fE
ZWm7MH3QaCFhNh+BeZnIZU03G6PKKJ+U0A727OifhJJ9JFj9dITnTS8Z05i8C79ffEPIH/73RYzE
FCafTAbi1I0SCT++Gk0HiggIM/cIb4HcF1GBARxFq9Dyn5t6S+RL//+V6yd7RBILB0ZT0gWc5ZAD
rpnu1x1lsO/JsT6tq5gYTd5M20sQA7P1FlVtiIQRg4LMg8NI3dOQysj9nYFY0LrQII7B4f4GlyuF
8nZ047T6BX3DuYXCDnEVID3iFTt7uLE+/ek= Data transfer

Klucz zapisywany jest w jednym wierszu (powyżej zawiniętym w celu zwiększenia czytelności) i trzech pól: nazwy algorytmu (ssh-rsa), klucza zapisanego w postaci Base64 i opcjonalnego komentarza/nazwy klucza.

Taki klucz umieszczamy na serwerze na swoim koncie w katalogu .ssh, w pliku o nazwie authorized_keys2. Usunięcie lub uszkodzenie tego pliku uniemożliwi ponowne zalogowanie się na serwer!.

Administratorzy serwera narzędziowego umieszczą Twój klucz w odpowiednim miejscu podczas zakładania Twojego konta.

Klucz publiczny może również wyglądać tak (tzw. format RFC4716):

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20091218"
AAAAB3NzaC1yc2EAAAABJQAAAIEAq+V/HWB1s0wfUfZ3/+yOFu9UYhGdTSCMkVBJ
/qB9CrE4QuoV3Yly97zeQY/Gv+l+ZM7E4M3aN43dw6ylL4z+7DApL6DWK+ZrECOU
IIPkuDARigH8yDYGKH2HG8EWys2GmdruULn8lvICUnPLlD1G1w5p//8vfBvYUQhT
WlHi1T8=
---- END SSH2 PUBLIC KEY ----

Plik klucza w takim formacie nie jest przyjmowany przez serwer narzędziowy, jednak można przysłać taki klucz administratorom - przekonwertujemy go (używając programu ssh-keygen) dla Ciebie. Prosimy tylko nie umieszczać klucza w formacie RFC4716 w pliku authorized_keys2.

Korzystanie z agenta SSH

edytuj

Najwygodniejszą formą korzystania z kluczy SSH jest uruchomienie programu tzw. agenta SSH. Agent utrzymuje klucze użytkownika w pamięci, dzięki czemu programy korzystające z SSH (Putty.exe, ssh, scp, pscp.exe itp.) nie muszą prosić o odszyfrowanie klucza hasłem użytkownika.

Działając w systemach Windows wystarczy uruchomić (np. podczas startu systemu) program pageant i dodać do niego swój klucz (podając hasło) zaraz po zalogowaniu się. Od tej pory dostęp do serwera narzędziowego (i innych, na których mamy uruchomiony dostęp swoim kluczem) będzie możliwy bez podawania hasła. Klucz można usunąć z agenta (np. w sytuacji, gdy odchodzimy od komputera lub udostępniamy go innym osobom).

Taką samą rolę w systemach uniksowych pełni program ssh-agent, który można uruchomić np. podczas uruchamiania środowiska graficznego (sesji systemu X Window).

  • Uwaga: program pageant 0.60 nie jest do końca zgodny z Windows 7 (być może także Windows Vista). Aby działał poprawnie należy uruchomić go w trybie zgodności z Windows XP. Alternatywnym rozwiązaniem jest korzystanie z aktywnie rozwijanego forka - KiTTY. Jest on kompatybilny z putty, może więc współpracować z programami, które wykorzystują składniki pakietu putty (typu FileZilla, HeidiSQL, WinSCP). Większość poradników dotyczących putty można wykorzystać w ten sam sposób przy KiTTY, a zyskuje się większą kompatybilność i dodatkowe funkcje.

Tworzenie kluczy SSH

edytuj

Do zalogowania się na serwer należy wygenerować (lub użyć istniejący) klucz SSH2 (nie SSH1), RSA lub DSA, długość co najmniej 2048 bitów.