SSH
Z Wikipedii
SSH (ang. secure shell) to standard protokołów komunikacyjnych używanych w sieciach komputerowych TCP-IP, w architekturze klient-serwer. W ścisłym znaczeniu SSH to tylko następca protokołu Telnet, służącego do terminalowego łączenia się ze zdalnymi komputerami. SSH różni się od Telnetu tym, że transfer wszelkich danych jest zaszyfrowany oraz możliwe jest rozpoznawanie użytkownika na wiele różnych sposobów. W szerszym znaczeniu SSH to wspólna nazwa dla całej rodziny protokołów, nie tylko terminalowych, lecz także służących do przesyłania plików (SCP, SFTP), zdalnej kontroli zasobów, tunelowania i wielu innych zastosowań. Wspólną cechą wszystkich tych protokołów jest identyczna z SSH technika szyfrowania danych i rozpoznawania użytkownika. Obecnie protokoły z rodziny SSH praktycznie wyparły wszystkie inne "bezpieczne" protokoły, takie, jak np. Rlogin czy RSH.
Ogólne założenia protokołu SSH powstały w grupie roboczej IETF. W użyciu są obie jego wersje - 1 i 2. W wersji 2 możliwe jest użycie dowolnych sposobów szyfrowania danych i 4 różnych sposobów rozpoznawania użytkownika, podczas gdy SSH1 obsługiwało tylko stałą listę kilku sposobów szyfrowania i 2 sposoby rozpoznawania użytkownika (klucz RSA i zwykłe hasło). Stosowanie wersji 1 jest obecnie stanowczo odradzane ze względu na ujawnione podatności na ataki man-in-the-middle, czyniące korzyści ze stosowania protokołu znikomymi.
Najczęściej stosowany sposób szyfrowania to AES, choć część serwerów nadal używa szyfrowania Blowfish i technik z rodziny DES.
Rozpoznawanie użytkownika może się opierać na tradycyjnym pytaniu o hasło, klucz (RSA, DSA) lub z użyciem protokołu Kerberos.
Trzy najbardziej znane implementacje SSH to zamknięte ssh.com, OpenSource'owe OpenSSH oraz wersja protokołu stosowana w programie PuTTY.
Protokoły z rodziny SSH korzystają zwykle z portu 22 protokołu TCP, choć często stosuje się porty o innych numerach w celu zwiększenia bezpieczeństwa serwera. Sama rodzina SSH znajduje się w warstwie aplikacji modelu OSI, ale do połączenia korzysta z protokołu TCP.
Spis treści |
[edytuj] Składnia (Linux)
Składnia ssh (FC4):
ssh [-1246AaCfgkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec] [-D port] [-e escape_char] [-F configfile] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-R [bind_address:]port:host:hostport] [-S ctl_path] [user@]hostname [command]
Składnia sshd (FC4):
sshd [-46Ddeiqt] [-b bits] [-f config_file] [-g login_grace_time] [-h host_key_file] [-k key_gen_time] [-o option] [-p port] [-u len]
[edytuj] Przykładowe użycie
Aby połączyć się ze zdalnym komputerem wystarczy wydać polecenie:
ssh login@host
opcjonalnie można podać numer portu:
ssh login@host -p <port>
np:
ssh uzytkownik@217.120.10.10 -p 80
Aby włączyć tunelowanie należy użyć składni:
ssh -L 8888:localhost:80 uzytkownik@217.120.10.10
Aby przetunelować sesję protokołu X należy wykonać polecenie:
ssh -X login@host
[edytuj] Konfiguracja serwera SSH (Unix)
Serwer SSH w systemach Unix konfiguruje się poprzez plik sshd_conf, który przeważnie znajduje się w katalogu /etc/ssh/ i tylko użytkownik root może go modyfikować. Jeśli SSH było instalowane ze źródeł, plik może znajdować się w innym miejscu. W pliku tym podaje się funkcje i ich parametry (elementy wybrane):
- PermitRootLogin (yes, no) - Zezwala na użycie użytkownika root.
- Protocol (1,2) - Rodzaj wersji protokołu SSH
- Port 3334 - Nr portu, na którym nasłuchuje serwer SSH
- RhostsAuthentication (yes, no) - Określa, czy SSH ignoruje $HOME/.ssh/known_hosts użytkownika
- IgnoreRhosts (yes, no)
- RhostsRSAAuthentication (no, yes)
- IgnoreUserKnownHosts (no, yes)
- PasswordAuthentication (yes, no)
- PermitEmptyPasswords (no, yes) - Zezwala na użycie pustych haseł.
- ChallengeResponseAuthentication (yes, no)
- KerberosAuthentication (no, yes)
- KerberosOrLocalPasswd (yes, no)
- KerberosTicketCleanup (yes, no)
- AFSTokenPassing (yes, no)
- KerberosTgtPassing (yes, no)
- PAMAuthenticationViaKbdInt (yes, no)
- X11Forwarding (yes, no) - Zezwala na połączenia z serwerem X11.
- X11DisplayOffset 10
- X11UseLocalhost (yes, no)
- PrintMotd (yes, no) - Włącza lub wyłącza wyświetlanie pliku /etc/motd po zalogowaniu.
- PrintLastLog (yes, no) - Włącza pokazywanie czasu ostatniego logowania.
- KeepAlive (yes, no) - Konfiguruje wysyłanie pakietów TCP "keepalive" do klienta w celu stwierdzenia jego aktywności.
- UseLogin (yes, no)>
- UsePrivilegeSeparation (yes, no)
- Compression (yes, no) - Ustawia kompresję danych
- MaxStartups 10 - Liczba niepowodzeń logowania przed rozłączeniem z serwerem
- Banner /some/path - ścieżka do pliku z informacjami wyświetlanymi po połączeniu
- VerifyReverseMapping (yes, no)
- Subsystem sftp /usr/lib/ssh/sftp-server
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
- Grupa robocza IETF zajmująca się SSH
- PuTTY - klient SSH dla Windows
- SSHWindows - serwer SSH dla Windows
- Programy do SSH oparte na implementacji ssh.com
- Strona projektu OpenSSH.
- Sztuczki z ssh - Część 1
- Sztuczki z ssh - Część 2 - tunele
- UNIX man pages: ssh(1)
- UNIX man pages: sshd_config(5)
Warstwa aplikacji
ADSP (AppleTalk) • APPC • AFP (AppleTalk) • DAP • DLC • DNS53 • ed2k • FTAM • FTP20,21 • Gopher • HTTP80 • HTTPS443 • IMAP143 • IRC194,529 • Named Pipes • NCP524 • NetBIOS137,138,139 • NWLink • NBT • NNTP119 • NTP123 • PAP • POP3110 • RPC • RTSP • SNMP161,162 • SMTP25 • SMB • SSL/TLS • SSH22 • TDI • Telnet23 • X.400 • X.500 • XDR • ZIP (AppleTalk)
(Cyfry w indeksie oznaczają numery portu)
Warstwa transportowa
ATP (AppleTalk) • NBP (AppleTalk) • NetBEUI • RTP • RTMP (AppleTalk) • SPX • TCP • UDP • SCTP
Warstwa sieciowa
IP • ICMP • IPsec • NAT • IPX • NWLink • NetBEUI • DDP (AppleTalk)
Warstwa dostępu do sieci
ARP • 10BASE-T • 802.11 WiFi • ADSL • Ethernet • EtherTalk • FDDI • Fibre Channel • ISDN • LocalTalk (AppleTalk) • NDIS • ODI • PPP • RS-232 • SLIP • Token Ring • TokenTalk (AppleTalk) • V.90