SSH(1) General Commands Manual SSH(1) NAZWA ssh - klient zdalnego logowania OpenSSH SKLADNIA ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B interfejs-przypisania] [-b adres-przypisania] [-c okreslenie-szyfru] [-D [adres-przypisania:]port] [-E plik-dziennika] [-e znak-specjalny] [-F plik-konfiguracyjny] [-I pkcs11] [-i plik-tozsamosci] [-J polozenie-docelowe] [-L adres] [-l nazwa-logowania] [-m okreslenie-mac] [-O polecenie-npz] [-o opcja] [-P znacznik] [-p port] [-R adres] [-S sciezka-npz] [-W stacja:port] [-w lokalny-tun[:zdalny-tun]] polozenie-docelowe [polecenie [argument ...]] ssh [-Q opcja-odpytania] OPIS ssh (klient SSH) jest programem sluzacym do logowania sie na zdalnym komputerze i do wykonywania polecen na zdalnym komputerze. Zostal zaprojektowany, aby zapewnic bezpieczna, szyfrowana komunikacje pomiedzy dwiema niezaufanymi stacjami, poprzez niezabezpieczona siec. Bezpiecznym kanalem mozna przekierowywac rowniez polaczenia X11, wybrane porty TCP i gniazda domeny Uniksa. ssh laczy sie i loguje do podanego polozenia-docelowego, ktore mozna podac okreslic jako [uzytkownik@]nazwa-stacji lub jako URI w postaci ssh://[uzytkownik@]nazwa-stacji[:port]. Uzytkownik musi potwierdzic swoja tozsamosc wobec zdalnego komputera jedna z wielu metod. Jesli poda sie polecenie, zostanie ono wykonane na zdalnym komputerze zamiast powloki logowania. Jako polecenie mozna podac pelen wiersz polecenia lub moze ono zawierac dodatkowe argumenty. Jesli sie je przekaze, argumenty zostana dolaczone do polecenia, rozdzielone spacjami, przed wyslaniem ich do wykonania przez serwer. Dostepne sa nastepujace opcje: -4 Wymusza na ssh uzywanie tylko adresow IPv4. -6 Wymusza na ssh uzywanie tylko adresow IPv6. -A Wlacza przekierowywanie polaczen z agenta uwierzytelniania, takiego jak ssh-agent(1). Mozna je okreslic rowniez w zaleznosci od stacji, w pliku konfiguracyjnym. Przekierowywania agenta nalezy wlaczac ostroznie. Uzytkownicy z mozliwoscia pominiecia uprawnien plikow na stacji zdalnej (dla gniazd agenta z domeny Uniksa) moga uzyskac dostep do lokalnego agenta za pomoca przekierowanego polaczenia. Atakujacy nie moze uzyskac danych klucza z agenta, ale moze przeprowadzic operacje na kluczach, ktore pozwola mu sie uwierzytelnic korzystajac z tozsamosci zaladowanej do agenta. Bezpieczniejsza alternatywa moze byc skorzystanie z serwera posredniczacego (zob. -J). -a Wylacza przekierowywanie polaczen z agenta uwierzytelniania. -B interfejs-przypisania Przypisuje do adresu interfejsu-przypisania przed podjeciem proby polaczenia ze zdalnym komputerem. Przydatne tylko w systemach o kilku adresach. -b adres-przypisania Uzywa adresu-przypisania na lokalnym komputerze jako adresu zrodlowego polaczenia. Przydatne tylko w systemach o kilku adresach. -C Zada kompresji wszystkich danych (w tym standardowych: wejscia, wyjscia i wyjscia bledow oraz danych w przekierowanych polaczeniach domeny Uniksa, TCP i X11). Uzywa tego samego algorytmu kompresji z gzip(1). Kompresja jest pozadana przy liniach modemowych i innych wolnych polaczeniach, ale jedynie spowolni dzialanie w szybkich sieciach. Domyslna wartosc mozna ustawic wedlug stacji w plikach konfiguracyjnych, zob. opcje Compression w ssh_config(5). -c okreslenie-szyfru Wybiera szyfr uzywany do zabezpieczenia sesji. okreslenie-szyfru jest lista szyfrow, w kolejnosci wedlug preferencji, z przecinkiem jako separatorem. Zob. slowo kluczowe Ciphers w ssh_config(5), aby dowiedziec sie wiecej. -D [adres-przypisania:]port Okresla lokalne ,,dynamiczne" przekierowanie portow na poziomie aplikacji. Dziala to na zasadzie przydzielenia gniazda do nasluchu na porcie po stronie lokalnej, opcjonalnie przypisanego do okreslonego adresu-przypisania. Gdy do tego portu tworzone jest polaczenie, jest ono przekierowywane bezpiecznym kanalem, a do okreslenia gdzie nalezy polaczyc sie z komputera zdalnego sluzy protokol aplikacji. Obecnie obslugiwane sa protokoly SOCKS4 i SOCKS5, a ssh bedzie dzialal jako serwer SOCKS. Jedynie root moze przekierowywac uprzywilejowane porty. Dynamiczne przekierowanie portow mozna wskazac rowniez w pliku konfiguracyjnym. Adresy IPv6 mozna podac ujmujac je w nawiasy kwadratowe. Jedynie root moze przekierowywac uprzywilejowane porty. Domyslnie, lokalny port jest przypisywany zgodnie z ustawieniem GatewayPorts. Mozna jednak podac adres-przypisania, aby przypisac polaczenie do okreslonego adresu. Adres-przypisania z wartoscia ,,localhost" oznacza, ze port nasluchu jest przypisany wylacznie do uzytku lokalnego, a pusty adres lub ,,*" wskazuje, ze port ma byc dostepny ze wszystkich interfejsow. -E plik-dziennika Dopisuje dzienniki debugowania do pliku-dziennika, zamiast na standardowe wyjscie bledow. -e znak-specjalny Ustawia znak specjalny do sesji z pty (domyslnie: ,,~"). Znak specjalny jest rozpoznawany tylko na poczatku wiersza. Znak specjalny, po ktorym nastapi: kropka ,,." - zamyka polaczenie, control-Z - zawiesza polaczenie, kolejny znak specjalny - wysyla pojedynczy znak specjalny. Ustawienie tego znaku na ,,none" wylacza znaki specjalne i czyni sesje w pelni transparentna. -F plik-konfiguracyjny Okresla alternatywny plik konfiguracyjny uzytkownika. Jesli poda sie plik konfiguracyjny w wierszu polecenia, systemowy plik konfiguracyjny (/etc/ssh/ssh_config) zostanie zignorowany. Domyslnym plikiem konfiguracyjnym uzytkownika jest ~/.ssh/config. Argument ,,none" wylaczy odczyt wszelkich plikow konfiguracyjnych. -f Zada przejscia ssh w tlo, zaraz przed wykonaniem polecenia. Przydatne, gdy ssh bedzie pytal o hasla lub frazy kodujace, lecz uzytkownik chce dokonac tego w tle. Wymusza -n. Zalecanym sposobem uruchamiania programow X11 po stronie zdalnej jest cos w stylu ssh -f stacja xterm. Jesli opcja konfiguracyjna ExitOnForwardFailure zostanie ustawiona na ,,yes", to klient uruchomiony z opcja -f poczeka na poprawne zestawienie wszelkich zdalnych przekierowan portow, przed przejsciem w tlo. Szczegoly wskazano w opisie ForkAfterAuthentication w podreczniku ssh_config(5). -G Powoduje, ze ssh wypisze swoja konfiguracje po przeanalizowaniu blokow Host oraz Match, a potem wyjdzie. -g Zezwala zdalnym stacjom na polaczenie do przekierowanych portow lokalnych. Przy korzystaniu z polaczenia zwielokrotnionego, opcja ta musi byc podana procesowi nadrzednemu. -I pkcs11 Okresla biblioteke wspoldzielona PKCS#11, ktora ssh powinien uzywac do komunikacji z tokenem PKCS#11, zapewniajacym klucze do uwierzytelnienia uzytkownika. -i plik-tozsamosci Wybiera plik, z ktorego odczytywana jest tozsamosc (klucz prywatny) dla klucza publicznego w celu uwierzytelniania. Mozna rowniez podac plik klucza publicznego, w celu uzycia powiazanego klucza prywatnego zaladowanego za pomoca ssh-agent(1) w sytuacji, gdy plik klucza prywatnego nie jest dostepny lokalnie. Wartosc domyslna obejmuje: ~/.ssh/id_rsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ecdsa_sk, ~/.ssh/id_ed25519 i ~/.ssh/id_ed25519_sk. Pliki tozsamosci mozna rowniez okreslic wobec konkretnej stacji w pliku konfiguracyjnym. Mozna podac opcje -i wielokrotnie (i okreslic wiele tozsamosci w plikach konfiguracyjnych). Jesli nie podano jawnie certyfikatu dyrektywa CertificateFile, ssh sprobuje takze zaladowac informacje o certyfikacie, z pliku o nazwie powstalej przez dolaczenie czastki -cert.pub, do nazwy pliku tozsamosci. -J polozenie-docelowe Laczy sie ze stacja docelowa, tworzac wczesniej polaczenie ssh ze stacja posredniczaca opisana w argumencie polozenie-docelowe, a nastepnie tworzac przekierowanie TCP do koncowego polozenia ze stacji posredniczacej. Mozna podac wiele stacji posredniczacych, rozdzielajac je przecinkiem. Adresy IPv6 mozna podac, ujmujac je w nawiasy kwadratowe. Jest to skrot wobec dyrektywy konfiguracyjnej ProxyJump. Prosze zauwazyc, ze dyrektywy konfiguracyjne podawane w wierszu polecenia generalnie stosuja sie tylko do koncowej stacji, a nie do stacji posredniczacych. Plik ~/.ssh/config pozwoli okreslic konfiguracje dla stacji posredniczacych. -K Wlacza uwierzytelnianie w oparciu o GSSAPI oraz przekierowanie (delegacje) poswiadczen GSSAPI na serwer. -k Wylacza przekierowanie (delegacje) poswiadczen GSSAPI na serwer. -L [adres-powiazania:]port:stacja:port-stacji -L [adres-powiazania:]port:zdalne-gniazdo -L lokalne-gniazdo:stacja:port-stacji -L lokalne-gniazdo:zdalne-gniazdo Okresla, ze polaczenia do danego portu TCP lub gniazda Uniksa na lokalnej stacji (kliencie) maja byc przekierowywane do podanej stacji i portu, lub gniazda Uniksa, na zdalnej stacji. Dziala to przez przydzielenie gniazda do nasluchu albo na porcie TCP po stronie lokalnej, opcjonalnie powiazanego z podanym adres-powiazania, lub na gniezdzie Uniksa. Gdy tylko nawiazywane jest polaczenie z lokalnym portem lub gniazdem, polaczenie jest przekierowywane poprzez bezpieczny kanal do portu port-stacji na stacji albo do gniazda Uniksa zdalne-gniazdo na stacji zdalnej. Przekierowania portu mozna okreslic rowniez w pliku konfiguracyjnym. Tylko superuzytkownik moze przekierowywac uprzywilejowane porty. Adresy IPv6 mozna podac, ujmujac je w nawiasy kwadratowe. Domyslnie, porty lokalne sa przypisywane zgodnie z ustawieniem GatewayPorts. Jednak mozna podac adres-przypisania aby przypisac polaczenie do okreslonego adresu. Adres-przypisania z wartoscia ,,localhost" oznacza, ze port nasluchu jest przypisany wylacznie do uzytku lokalnego, a pusty adres lub ,,*" wskazuje, ze port ma byc dostepny ze wszystkich interfejsow. -l nazwa-logowania Okresla uzytkownika, jako ktory ma nastapic zalogowanie na zdalnym komputerze. Mozna go rowniez okreslic w zaleznosci od stacji, w pliku konfiguracyjnym. -M Umieszcza klienta ssh w trybie ,,nadrzednym" przy dzieleniu polaczenia. Wielokrotna opcja -M umieszcza ssh w trybie ,,nadrzednym", jednak wymagane jest potwierdzenie za pomoca ssh-askpass(1), przed kazda operacja zmieniajaca stan zwielokrotnienia (np. otwarcie nowej sesji). Wiecej szczegolow w opisie ControlMaster w podreczniku ssh_config(5). -m okreslenie-mac Lista algorytmow MAC (ang. message authentication code - kod uwierzytelnienia wiadomosci), podanych w preferowanej kolejnosci, uzywajaca przecinka jako separatora. Wiecej informacji w opisie slowa kluczowego MACs w podreczniku ssh_config(5). -N Nie wykonuje zdalnego polecenia. Przydatne, jesli oczekiwane jest jedynie przekierowanie portow. Wiecej informacji w opisie SessionType w podreczniku ssh_config(5). -n Przekierowuje standardowe wejscie z /dev/null (czyli zapobiega odczytowi ze standardowego wejscia). Konieczne, gdy ssh ma dzialac w tle. Popularna sztuczka jest korzystanie z tej opcji w celu uruchamiania programow X11 na zdalnym komputerze. Na przyklad ssh -n shadows.cs.hut.fi emacs & uruchomi program emacs na shadows.cs.hut.fi, a polaczenie X11 zostanie automatycznie przekierowane bezpiecznym kanalem. Program ssh zostanie umieszczony w tle (nie zadziala to, gdy ssh musi zapytac o haslo lub fraze kodujaca, zob. tez opcje -f). Wiecej szczegolow w opisie StdinNull w podreczniku ssh_config(5). -O polecenie-npz Steruje nadrzednym procesem zwielokrotniania aktywnego polaczenia. Gdy poda sie opcje -O, argument ctl_cmd jest interpretowany i przekazywany procesowi nadrzednemu. Prawidlowe polecenia to: ,,check" (sprawdza, czy proces nadrzedny dziala), ,,forward" (zada przekierowania bez wykonywania polecenia), ,,cancel" (odwoluje przekierowania), ,,proxy" (laczy sie z nadrzednym procesem zwielokrotniania w trybie posredniczenia), ,,exit" (zada wyjscia procesu nadrzednego) oraz ,,stop" (zada zatrzymywania przyjmowania kolejnych zadan zwielokrotniania przez proces nadrzedny). -o opcja Moze posluzyc do przekazania opcji w formacie uzywanym w pliku konfiguracyjnym. Przydatne, gdy brak dla nich oddzielnych opcji wiersza polecen. Pelny opis ponizszych opcji i ich dopuszczalnych wartosci podano w podreczniku ssh_config(5). AddKeysToAgent AddressFamily BatchMode BindAddress BindInterface CASignatureAlgorithms CanonicalDomains CanonicalizeFallbackLocal CanonicalizeHostname CanonicalizeMaxDots CanonicalizePermittedCNAMEs CertificateFile ChannelTimeout CheckHostIP Ciphers ClearAllForwardings Compression ConnectTimeout ConnectionAttempts ControlMaster ControlPath ControlPersist DynamicForward EnableEscapeCommandline EnableSSHKeysign EscapeChar ExitOnForwardFailure FingerprintHash ForkAfterAuthentication ForwardAgent ForwardX11 ForwardX11Timeout ForwardX11Trusted GSSAPIAuthentication GSSAPIDelegateCredentials GatewayPorts GlobalKnownHostsFile HashKnownHosts Host HostKeyAlgorithms HostKeyAlias HostbasedAcceptedAlgorithms HostbasedAuthentication Hostname IPQoS IdentitiesOnly IdentityAgent IdentityFile IgnoreUnknown Include KbdInteractiveAuthentication KbdInteractiveDevices KexAlgorithms KnownHostsCommand LocalCommand LocalForward LogLevel LogVerbose MACs NoHostAuthenticationForLocalhost NumberOfPasswordPrompts ObscureKeystrokeTiming PKCS11Provider PasswordAuthentication PermitLocalCommand PermitRemoteOpen Port PreferredAuthentications ProxyCommand ProxyJump ProxyUseFdpass PubkeyAcceptedAlgorithms PubkeyAuthentication RekeyLimit RemoteCommand RemoteForward RequestTTY RequiredRSASize RevokedHostKeys SecurityKeyProvider SendEnv ServerAliveCountMax ServerAliveInterval SessionType SetEnv StdinNull StreamLocalBindMask StreamLocalBindUnlink StrictHostKeyChecking SyslogFacility TCPKeepAlive Tag Tunnel TunnelDevice UpdateHostKeys User UserKnownHostsFile VerifyHostKeyDNS VisualHostKey XAuthLocation -P znacznik Podaje znacznik, ktory moze posluzyc do wyboru okreslonej konfiguracji z pliku ssh_config(5). Wiecej informacji w opisie slow kluczowych Tag i Match w podreczniku ssh_config(5). -p port Port, do ktorego ma nastapic polaczenie na zdalnej stacji. Mozna go rowniez okreslic w zaleznosci od stacji, w pliku konfiguracyjnym. -Q opcja-odpytania Odpytuje o algorytmy obslugujace jedna z ponizszych funkcji: cipher (obsluga szyfrow symetrycznych), cipher-auth (obsluga szyfrow symetrycznych obslugujacych szyfrowanie z uwierzytelnieniem), help (obsluga zapytan do uzycia z opcja -Q), mac (obsluga kodow integralnosci komunikatow), kex (algorytmy wymiany klucza), key (typy kluczy), key-ca-sign (prawidlowe algorytmy podpisow osrodkow certyfikacji dla certyfikatow), key-cert (typy kluczy certyfikatow), key-plain (typy kluczy niebedacych certyfikatami), key-sig (wszystkie typy kluczy i algorytmy podpisow), protocol-version (obslugiwane wersje protokolu SSH) i sig (obslugiwane algorytmy podpisow). Alternatywnie, dowolne slowo kluczowe z ssh_config(5) lub sshd_config(5) przyjmujace liste algorytmow moze posluzyc jako alias odpowiadajacej opcji-odpytania. -q Tryb cichy. Wylacza wiekszosc ostrzezen i komunikatow diagnostycznych. -R [adres-powiazania:]port:stacja:port-stacji -R [adres-przypisania:]port:lokalne-gniazdo -R zdalne-gniazdo:stacja:port-stacji -R zdalne-gniazdo:lokalne-gniazdo -R [adres-przypisania:]port Okresla, ze polaczenia z danym portem TCP lub gniazdem Uniksa na zdalnej stacji (serwerze) maja byc przekierowywane na strone lokalna. Dziala to, poprzez przydzielenia gniazda do nasluchu albo portu TCP, albo gniazda Uniksa po stronie zdalnej. Gdy do tego portu lub gniazda Uniksa tworzone jest polaczenie, jest ono przekierowywane poprzez bezpieczny kanal, a polaczenie jest tworzone z lokalnego komputera albo do jawnie podanego polozenia docelowego, okreslonego portem stacji port-stacji lub do lokalnego-gniazda, albo, jesli nie podano jawnie lokalizacji, ssh bedzie dzialal jako serwer posredniczacy SOCKS 4/5, przekierowujac polaczenia do celow zazadanych przez zdalnego klienta SOCKS. Przekierowania portu mozna okreslic rowniez w pliku konfiguracyjnym. Porty uprzywilejowane moga byc przekierowywane tylko, jesli zalogowano sie jako root na zdalnym komputerze. Adresy IPv6 mozna podac, ujmujac je w nawiasy kwadratowe. Domyslnie, gniazda nasluchujace TCP na serwerze beda powiazane tylko z interfejsem petli zwrotnej. Mozna to przeslonic, podajac adres-powiazania. Pusty adres-powiazania lub adres o wartosci ,,*" wskazuje, ze gniazdo zdalne ma nasluchiwac na wszystkich interfejsach. Podanie zdalnego adresu-powiazania powiedzie sie tylko, jesli na serwerze wlaczono opcje GatewayPorts (zob. sshd_config(5)). Jesli argumentem port bedzie ,,0", to nasluchujacy port zostanie dynamicznie przydzielony na serwerze i zgloszony klientowi w momencie uruchomienia. Przy uzyciu razem z opcja -O forward, przydzielony port zostanie wypisany na standardowe wyjscie. -S sciezka-npz Okresla polozenie gniazda sterujacego dzieleniem polaczenia; lancuch ,,none" wylaczy dzielenie polaczenia. Wiecej szczegolow w opisie ControlPath i ControlMaster w podreczniku ssh_config(5). -s Moze posluzyc do zazadania przywolania podsystemu na zdalnym systemie. Podsystemy korzystaja z SSH jako bezpiecznej komunikacji dla innych aplikacji (np. sftp(1)). Podsystem jest okreslony jako polecenie zdalne. Wiecej szczegolow w opisie SessionType w podreczniku ssh_config(5). -T Wylacza przydzielenie pseudoterminala. -t Wymusza przydzielenie pseudoterminala. Mozna w ten sposob wykonac dowolne programy korzystajace z screen na zdalnym komputerze, co moze byc bardzo przydatne np. przy implementacji uslug menu. Wielokrotna opcja -t wymusi przydzielenie tty, nawet, gdy ssh nie ma lokalnego tty. -V Wyswietla numer wersji i wychodzi. -v Tryb szczegolowy. Powoduje, ze ssh wypisuje szczegolowe komunikaty informujace o postepach programu. Przydatne do rozwiazywania problemow z polaczeniem, uwierzytelnieniem i konfiguracja. Opcja -v podana wielokrotnie zwieksza szczegolowosc. Jej maksymalny poziom to 3. -W stacja:port Zada, aby standardowe wejscie i standardowe wyjscie na kliencie byly przekierowywane do stacji i portu poprzez bezpieczny kanal. Wymusza -N, -T, ExitOnForwardFailure i ClearAllForwardings, choc mozna je przeslonic w pliku konfiguracyjnym lub za pomoca opcji -o wiersza polecen. -w lokalny-tun[:zdalny-tun] Zada przekierowanie urzadzenia tunelu za pomoca podanych urzadzen tun(4) pomiedzy klienckim (lokalnym-tun) i (zdalnym-tun) po stronie serwera. Urzadzenia te mozna okreslic numerycznym identyfikatorem lub slowem kluczowym ,,any", ktore uzyje nastepnego dostepnego urzadzenia tunelu. Jesli nie poda sie zdalnego-tun, przyjmie on wartosc domyslna ,,any". Zob. tez dyrektywy Tunnel i TunnelDevice w podreczniku ssh_config(5). Jesli dyrektywa Tunnel jest nieustawiona, bedzie ustawiona na domyslny tryb tunelowania, ktorym jest ,,point-to-point". Jesli oczekiwany jest inny tryb przekierowania Tunnel, trzeba go okreslic przed podaniem opcji -w. -X Wlacza przekierowanie X11. Mozna to rowniez okreslic w zaleznosci od stacji, w pliku konfiguracyjnym. Nalezy zachowac ostroznosc przed wlaczaniem przekierowania X11. Uzytkownicy z mozliwoscia pominiecia uprawnien pliku na stacji zdalnej (dla bazy danych autoryzacji uzytkownikow X) moga uzyskac dostep do lokalnego ekranu X11 za pomoca przekierowanego polaczenia. Atakujacy moze nastepnie prowadzic aktywnosc taka jak podsluchiwanie wprowadzanych klawiszy. Z tego wzgledu, przekierowanie X11 podlega domyslnie ograniczeniom wynikajacym z rozszerzenia X11 SECURITY. Wiecej szczegolow przy opcji -Y ssh i dyrektywie ForwardX11Trusted w podreczniku ssh_config(5). -x Wylacza przekierowanie X11. -Y Wlacza zaufane przekierowanie X11. Zaufane przekierowania X11 nie podlegaja regulacjom rozszerzenia X11 SECURITY. -y Wysyla informacje dziennika do modulu systemowego syslog(3). Domyslnie informacje te sa wypisywane na standardowe wyjscie bledow. ssh moze dodatkowo pozyskiwac dane konfiguracyjne z pliku konfiguracyjnego uzytkownika oraz z systemowego pliku konfiguracyjnego. Format pliku i opcje konfiguracyjne opisano w podreczniku ssh_config(5). UWIERZYTELNIANIE Klient SSH OpenSSH obsluguje protokol SSH 2. Dostepne sa nastepujace metody uwierzytelniania: uwierzytelnianie w oparciu o GSSAPI, uwierzytelnianie na podstawie danej stacji, uwierzytelnianie kluczem publicznym, uwierzytelnianie wymagajace wpisania znakow z klawiatury i uwierzytelnianie haslem. Domyslnie, proba uwierzytelnienia nastepuje wedlug metod w opisanej kolejnosci, choc mozna ja zmienic za pomoca PreferredAuthentications. Uwierzytelnianie na podstawie danej stacji dziala w nastepujacy sposob. Jesli komputer, na ktorym loguje sie uzytkownik znajduje sie na liscie w plikach /etc/hosts.equiv lub /etc/ssh/shosts.equiv na zdalnym komputerze, uzytkownik ten nie jest rootem, a nazwy uzytkownika sa identyczne po obu stronach, albo gdy pliki ~/.rhosts lub ~/.shosts istnieja w katalogu domowym uzytkownika na komputerze zdalnym i zawieraja wiersz z nazwa komputera klienckiego oraz nazwa uzytkownika na tym komputerze, to uzytkownik jest przedstawiany do zalogowania sie. Dodatkowo serwer musi byc w stanie zweryfikowac klucz stacji klienckiej (zob. opis /etc/ssh/ssh_known_hosts i ~/.ssh/known_hosts, ponizej) aby logowanie sie powiodlo. Ta metoda uwierzytelnienia zamyka luki bezpieczenstwa zwiazane z atakami IP spoofing (podszywaniem sie pod numer IP), DNS spoofing oraz routing spoofing. [Uwaga do administratora: /etc/hosts.equiv, ~/.rhosts i w ogolnosci protokol rlogin/rsh sa generalnie do gruntu niebezpieczne i powinny byc wylaczone, jesli oczekuje sie zapewnienia bezpieczenstwa.] Uwierzytelnianie kluczem publicznym dziala nastepujaco: ten sposob korzysta z kryptografii klucza publicznego, uzywajac systemow kryptograficznych, w ktorych szyfrowanie i odszyfrowywanie odbywa sie odrebnymi kluczami i nie da sie wywiesc klucza odszyfrowujacego z klucza szyfrujacego. Kazdy uzytkownik tworzy zatem do celow uwierzytelniania pare kluczy: publiczny i prywatny. Serwer zna klucz publiczny, ale tylko uzytkownik zna klucz prywatny. ssh automatycznie implementuje protokoly uwierzytelniania kluczem publicznym, za pomoca jednego z algorytmow: ECDSA, Ed25519 lub RSA. Plik ~/.ssh/authorized_keys zawiera liste kluczy publicznych, ktorymi mozna sie zalogowac. Gdy uzytkownik sie zaloguje, ssh informuje serwer ktorej pary kluczy chcialby uzyc do uwierzytelnienia. Klient potwierdza, ze ma dostep do klucza prywatnego, a serwer sprawdza, czy powiazany klucz publiczny jest upowazniony do zaakceptowania danego konta. Serwer moze poinformowac klienta o bledach, ktore uniemozliwily poprawne uwierzytelnienie kluczem publicznym, ale dopiero po tym, gdy uwierzytelnienie nastapi inna metoda. Mozna je sprawdzic zwiekszajac poziom LogLevel na DEBUG lub wyzszy (np. opcja -v). Uzytkownik tworzy swoja pare kluczy poleceniem ssh-keygen(1). Klucz prywatny zostanie umieszczony w pliku ~/.ssh/id_ecdsa (ECDSA), ~/.ssh/id_ecdsa_sk (ECDSA po stronie uwierzytelniajacego sie), ~/.ssh/id_ed25519 (Ed25519), ~/.ssh/id_ed25519_sk (Ed25519 po stronie uwierzytelniajacego sie) lub ~/.ssh/id_rsa (RSA), a klucz publiczny w pliku ~/.ssh/id_ecdsa.pub (ECDSA), ~/.ssh/id_ecdsa_sk.pub (ECDSA po stronie uwierzytelniajacego sie), ~/.ssh/id_ed25519.pub (Ed25519), ~/.ssh/id_ed25519_sk.pub (Ed25519 po stronie uwierzytelniajacego sie) lub ~/.ssh/id_rsa.pub (RSA) w katalogu domowym uzytkownika. Uzytkownik powinien nastepnie skopiowac klucz publiczny do pliku ~/.ssh/authorized_keys w swoim katalogu domowym na zdalnym komputerze. Plik authorized_keys odpowiada tradycyjnemu plikowi ~/.rhosts i posiada po jednym kluczu na wiersz, choc wiersze te moga byc bardzo dlugie. Po dokonaniu opisanych czynnosci, uzytkownik moze zalogowac sie bez podawania hasla. Odmiana uwierzytelniania kluczem publicznym jest postac uwierzytelniania certyfikatem: zamiast zbioru kluczy publicznych/prywatnych, korzysta sie z podpisanych certyfikatow. Ma to te zalete, ze pojedynczy, zaufany osrodek certyfikacji moze sluzyc w miejscu wielu kluczy publicznych/prywatnych. Wiecej informacji w rozdziale CERTYFIKATY w podreczniku ssh-keygen(1). Najwygodniejszym sposobem korzystania z kluczy publicznych moze byc agent uwierzytelniania. Wiecej informacji w podreczniku ssh-agent(1) i (opcjonalnie) w opisie dyrektywy AddKeysToAgent w ssh_config(5). Uwierzytelnianie wymagajace wpisania znakow z klawiatury dziala nastepujaco: Serwer wysyla arbitralny lancuch ,,wyzwanie" i czeka na odpowiedz, byc moze powtarzajac to wielokrotnie. Przyklady tego typu uwierzytelniania obejmuja Uwierzytelniania BSD (zob. login.conf(5)) oraz PAM (czesc systemow innych niz Ox). Ostatecznie, jesli inne metody zawioda, ssh pyta uzytkownika o haslo. Haslo jest wysylane do zdalnej stacji celem sprawdzenia; jednak poniewaz cala komunikacja jest szyfrowana, hasla nie da sie podsluchac z sieci. ssh automatycznie zarzadza i sprawdza baze danych zawierajaca identyfikatory wszystkich stacji, z jakimi byl kiedykolwiek uzyty. Klucze stacji sa przechowywane w pliku ~/.ssh/known_hosts, w katalogu domowym uzytkownika. Dodatkowo, sprawdzany jest automatycznie plik /etc/ssh/ssh_known_hosts pod katem znanych stacji. Nowe stacje sa dodawane automatycznie do pliku uzytkownika. Gdyby identyfikacja stacji ulegla zmianie, ssh ostrzeze o tym i wylaczy uwierzytelnienie haslem, aby uniknac podszywania sie pod serwer oraz atakow typ man-in-the-middle, ktore moglyby sluzyc do ominiecia szyfrowania. Opcja StrictHostKeyChecking mozna ograniczyc logowanie sie do komputerow, ktorych klucz stacji nie jest znany lub zmienil sie. Gdy identyfikacja uzytkownika zostanie zaakceptowana przez serwer, serwer albo wykonuje podane polecenie w sesji nieinteraktywnej lub, jesli nie podano polecenia, loguje sie do komputera i daje uzytkownikowi dostep do zwyklej powloki w sesji interaktywnej. Cala komunikacja ze zdalnym poleceniem lub powloka bedzie automatycznie szyfrowana. Jesli zazadano sesji interaktywnej, ssh domyslnie zazada jedynie pseudoterminala (pty) do sesji interaktywnej, gdy klient taki posiada. Do przesloniecia tego zachowania mozna uzyc opcji -T i -t. Jesli przydzielono pseudoterminal, uzytkownik moze korzystac ze znakow specjalnych opisanych nizej. Jesli nie przydzielono pseudoterminala, sesja jest transparentna i moze sluzyc do wiarygodnego przesylania danych binarnych. W wielu systemach ustawienie znaku specjalnego na ,,none" rowniez uczyni sesje transparentna nawet, gdy korzysta sie z tty. Sesja konczy sie, gdy polecenie lub powloka na komputerze zdalnym wyjdzie i wszystkie polaczenia X11 i TCP zostana zamkniete. ZNAKI SPECJALNE Gdy zazadano pseudoterminala, ssh obsluguje wiele funkcji za pomoca znaku specjalnego. Pojedynczy znak tyldy mozna wyslac wpisujac ,,~~" lub za pomoca podania po tyldzie znaku innego, niz jednego z opisanych nizej. Znak specjalny musi zawsze nastepowac na poczatku wiersza, aby zostal zinterpretowany jako takowy. Znak specjalny mozna zmienic w plikach konfiguracyjnych za pomoca dyrektywy konfiguracyjnej EscapeChar lub w wierszu polecenia, opcja -e. Obslugiwane sekwencje specjalne (zakladajac domyslny znak specjalny ,,~") to: ~. Rozlacza sie. ~^Z ssh przechodzi w tlo. ~# Wypisuje przekierowane polaczenia. ~& ssh przechodzi w tlo przy wylogowaniu, podczas oczekiwania na zakonczenie przekierowanego polaczenia lub sesji X11. ~? Wyswietla liste znakow specjalnych. ~B Wysyla BREAK do zdalnego systemu (przydatne tylko, jesli ten umie go obsluzyc). ~C Otwiera wiersz polecenia. Obecnie pozwala to na uzupelnienie przekierowania portow za pomoca opcji -L, -R i -D (zob. wyzej). Pozwala rowniez na odwolanie istniejacych przekierowan portow za pomoca -KL[adres-przypisania:]port po stronie lokalnej, -KR[adres-przypisania:]port po stronie zdalnej oraz -KD[adres-przypisania:]port w przypadku dynamicznego przekierowania portow. !polecenie pozwala uzytkownikowi na wykonanie polecenia lokalnego, jesli wlaczona jest opcja PermitLocalCommand w pliku ssh_config(5). Skrocona pomoc jest dostepna za pomoca opcji -h. ~R Zada odnowienia kluczy polaczenia (przydatne tylko, jesli zdalna stacja to obsluguje). ~V Zmniejsza szczegolowosc (LogLevel), gdy bledy sa wypisywane na standardowe wyjscie bledow. ~v Zwieksza szczegolowosc (LogLevel), gdy bledy sa wypisywane na standardowe wyjscie bledow. PRZEKIEROWANIE TCP Przekierowanie dowolnych polaczen TCP poprzez bezpieczny kanal mozna okreslic w wierszu polecenia albo w pliku konfiguracyjnym. Jednym z zastosowan przekierowania TCP moze byc bezpieczne polaczenie z serwerem pocztowym, innym - omijanie zapor sieciowych. W ponizszym przykladzie obserwujemy szyfrowania komunikacji klienta IRC, nawet w sytuacji, gdy serwer IRC do ktorego sie on laczy, nie obsluguje bezposrednio szyfrowanej komunikacji. Dziala to w nastepujacy sposob: uzytkownik laczy sie ze zdalna stacja za pomoca ssh, podajac porty, jakie maja posluzyc do przekierowania polaczenia. Nastepnie mozna uruchomic program lokalnie, a ssh zaszyfruje i przekieruje polaczenie do zdalnego serwera. Ponizszy przyklad tuneluje sesje IRC z klienta do serwera IRC pod adresem ,,server.example.com", dolacza do kanalu ,,#users" z ksywka ,,pinky", korzystajac ze standardowego portu IRC, 6667: $ ssh -f -L 6667:localhost:6667 server.example.com sleep 10 $ irc -c '#users' pinky IRC/127.0.0.1 Opcja -f umieszcza ssh w tle, a polecenie zdalne ,,sleep 10" sluzy daniu czasu (w tym przykladzie 10 sekund) na uruchomienie programu, ktory bedzie uzywal tunelu. Jesli w podanym czasie nie zostanie utworzone polaczenie, ssh wyjdzie. PRZEKIEROWANIE X11 Jesli zmienna ForwardX11 jest ustawiona na ,,yes" (albo zob. opis opcji -X, -x i -Y powyzej), a uzytkownik korzysta z X11 (ustawiona jest zmienna srodowiskowa DISPLAY), polaczenie do ekranu X11 jest automatycznie przekierowywane na strone zdalna w ten sposob, ze programy uruchomione w powloce (lub poleceniem) sa przepuszczane przez szyfrowany tunel, a polaczenie do prawdziwego serwera X zostanie utworzone z lokalnego komputera. Uzytkownik nie powinien recznie ustawiac DISPLAY. Przekierowywanie polaczen X11 mozna skonfigurowac w wierszu polecenia lub w plikach konfiguracyjnych. Wartosc zmiennej DISPLAY ustawiona przez ssh bedzie wskazywac na serwer, lecz z numerem ekranu wiekszym niz zero. Jest to normalne zachowanie i ma miejsce, poniewaz ssh tworzy serwer ,,posredniczacy" X na serwerze, w celu przekierowania polaczen przez szyfrowany kanal. ssh rowniez automatycznie skonfiguruje dane Xauthority na serwerze. W tym celu utworzy losowe ciasteczko autoryzacji, przechowa je w Xauthority na serwerze i zweryfikuje, ze wszelkie przekierowywane polaczenia identyfikuja sie tym ciasteczkiem oraz zastapi je prawdziwym ciasteczkiem po otwarciu polaczenia. Prawdziwe ciasteczko autoryzacji nigdy nie jest wysylane na serwer (a zadne ciasteczka nie sa przesylane jawnie). Jesli zmienna ForwardAgent jest ustawiona na ,,yes" (lub zob. opis opcji -A i -a powyzej), a uzytkownik korzysta z agenta uwierzytelniania, to polaczenie z agentem jest automatycznie przekierowywane na strone zdalna. WERYFIKOWANIE KLUCZY STACJI Przy laczeniu sie z serwerem po raz pierwszy, uzytkownikowi prezentowany jest odcisk palca klucza publicznego serwera (chyba, ze wylaczono opcje StrictHostKeyChecking). Odciski palcow mozna okreslic za pomoca ssh-keygen(1): $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key Jesli odcisk palca jest juz znany, moze byc dopasowany, a klucz mozna zaakceptowac lub odrzucic. Jesli dostepne sa tylko przestarzale (MD5) odciski palcow serwera, opcja -E programu ssh-keygen(1) moze posluzyc do obnizenia poziomu algorytmu dopasowujacego. Z powodu trudnosci w porownywaniu odciskow palcow stacji tylko na podstawie wizualnej obserwacji ciagow znakow, istnieje rowniez mozliwosc wizualnego porownania kluczy stacji, za pomoca grafiki losowej. Ustawiajac opcje VisualHostKey na ,,yes", przy kazdym logowaniu do serwera wyswietlana jest niewielka grafika ASCII, bez znaczenia, czy sama sesja jest interaktywna, czy nie. Uczac sie tego wzoru, tworzonego przez znany serwer, uzytkownik moze w latwy sposob przekonac sie, gdy klucz stacji zmieni sie, bowiem wyswietli to zupelnie odmienny wzor. Jednak wzory te nie sa jednoznaczne, zatem wzor wygladajacy podobnie do zapamietanego daje jedynie duze prawdopodobienstwo, ze klucz stacji pozostal ten sam, nie stanowi natomiast takiej gwarancji. Aby pobrac liste odciskow palcow wraz z ich losowymi grafikami dla wszystkich znanych stacji, mozna uzyc nastepujacego wiersza polecenia. $ ssh-keygen -lv -f ~/.ssh/known_hosts Jesli odcisk palca jest nieznany, dostepna jest alternatywna metoda uwierzytelniania: odciski SSH zweryfikowane za pomoca SSH. Dodatkowy rekord zasobu (ang. resource record - RR), SSHFP, jest dodawany do pliku strefy, a laczacy sie klient moze dopasowac odcisk palca do odcisku prezentowanego klucza. W tym przykladzie, nastepuje polaczenie klienta do serwera ,,host.example.com". Rekordy zasobu SSHFP powinno sie najpierw dodac do pliku strefy dla host.example.com: $ ssh-keygen -r host.example.com. Wiersze wyjsciowe zostana dodane do pliku strefy. Aby sprawdzic, ze strefa odpowiada na zapytania o odciski palcow: $ dig -t SSHFP host.example.com I w koncu nastepuje polaczenie klienta: $ ssh -o "VerifyHostKeyDNS ask" host.example.com [...] Matching host key fingerprint found in DNS. Are you sure you want to continue connecting (yes/no)? Wiecej informacji przy opcji VerifyHostKeyDNS w podreczniku ssh_config(5). WIRTUALNE SIECI PRYWATNE (VPN) WYKORZYSTUJACE SSH ssh obsluguje tunelowanie wirtualnych sieci prywatnych (ang. Virtual Private Network - VPN) za pomoca pseudourzadzenia sieciowego tun(4), pozwalajac na bezpieczne zlaczenie dwoch sieci. Opcja konfiguracyjna PermitTunnel w sshd_config(5) kontroluje, czy serwer to obsluguje i na jakim poziomie (2. lub 3. warstwa transportowa). W ponizszym przykladzie klient laczy siec 10.0.50.0/24 ze zdalna siecia 10.0.99.0/24 za pomoca polaczenia typu point-to-point z adresu 10.1.1.1 do 10.1.1.2, zakladajac, ze serwer SSH dzialajacy na bramie sieciowej zdalnej sieci, pod adresem 192.168.1.15, na to pozwala. Po stronie klienta: # ssh -f -w 0:1 192.168.1.15 true # ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252 # route add 10.0.99.0/24 10.1.1.2 Po stronie serwera: # ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252 # route add 10.0.50.0/24 10.1.1.1 Dostep klienta mozna dokladnie skonfigurowac za pomoca pliku /root/.ssh/authorized_keys (zob. nizej) i opcji serwera PermitRootLogin. Ponizszy wpis zezwolilby na polaczenia na 1. urzadzeniu tun(4) od uzytkownika ,,jane", a na 2. urzadzeniu tun od uzytkownika ,,john", jesli PermitRootLogin jest ustawione na ,,forced-commands-only": tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... john Konfiguracja korzystajaca z SSH pociaga za soba sporo narzutu, zatem moze byc wlasciwsza do konfiguracji tymczasowych, takich jak bezprzewodowe VPN. Dla dlugotrwalych konfiguracji VPN istnieja lepsze narzedzia, takie jak ipsecctl(8) i isakmpd(8). SRODOWISKO ssh zwykle ustawi nastepujace zmienne srodowiskowe: DISPLAY Zmienna DISPLAY wskazuje polozenie serwera X11. Jest automatycznie ustawiana przez ssh, aby wskazywac na wartosc w postaci ,,nazwa-stacji:n", gdzie ,,nazwa-stacji" oznacza stacje, na ktorej dziala powloka, a ,,n" jest liczba calkowita >= 1. ssh uzywa tej wartosci specjalnej do przekierowania polaczen X11 bezpiecznym kanalem. Uzytkownicy zwykle nie powinni sami ustawiac zmiennej DISPLAY, poniewaz uczyniloby to polaczenie X11 niezabezpieczonym (i wymagaloby recznego kopiowania wymaganych ciasteczek autoryzujacych). HOME Ustawiana na sciezke katalogu domowego uzytkownika. LOGNAME Rownowazne USER; ustawiana ze wzgledu na kompatybilnosc z systemami korzystajacymi z tej zmiennej. MAIL Ustawiana na sciezke skrzynki pocztowej uzytkownika. PATH Ustawiana na domyslna PATH, jak okreslono przy kompilacji ssh. SSH_ASKPASS Jesli ssh wymaga frazy kodujacej, odczyta fraze kodujaca z biezacego terminala, jesli program uruchomiono z terminala. Jesli ssh nie ma powiazanego terminala, lecz ustawiono zmienne DISPLAY i SSH_ASKPASS, wykonany zostanie program okreslony zmienna SSH_ASKPASS i otwarte bedzie okno X11 sluzace do odczytu frazy kodujacej. Przydatne szczegolnie przy wywolaniu ssh z .xsession lub powiazanego skryptu (prosze zauwazyc, ze na niektorych komputerach aby to zadzialalo, moze byc konieczne przekierowanie wejscia z /dev/null). SSH_ASKPASS_REQUIRE Pozwala na dokladniejsza kontrole nad programem askpass. Jesli zmienna ustawiono na ,,never", to ssh nigdy nie bedzie go uzywal. Jesli ustawi sie ja na ,,prefer", to przy odpytywaniu o hasla ssh bedzie preferowal korzystanie z programu askpass zamiast TTY. Jesli natomiast zmienna ustawi sie na ,,force"], to program askpass bedzie uzywany do wszelkiego wprowadzania fraz kodujacych, niezaleznie od tego, czy ustawiono DISPLAY. SSH_AUTH_SOCK Identyfikuje sciezke gniazda domeny Uniksa sluzacego do komunikacji z agentem. SSH_CONNECTION Identyfikuje koncowki polaczenia po stronie klienta i serwera. Zmienna zawiera cztery wartosci rozdzielone spacja: adres IP klienta, numer portu klienta, adres IP serwera i numer portu serwera. SSH_ORIGINAL_COMMAND Zmienna zawiera pierwotny wiersz polecenia, jesli wykonywane jest wymuszone polecenie. Moze posluzyc do wydobycia pierwotnych argumentow. SSH_TTY Ustawiana na nazwe tty (sciezka do urzadzenia) powiazanego z biezaca powloka lub poleceniem. Jesli biezaca sesja nie posiada tty, zmienna ta nie jest ustawiana. SSH_TUNNEL Opcjonalnie ustawiana przez sshd(8); zawiera przypisane nazwy interfejsow, jesli klient zazadal przekierowania tunelem. SSH_USER_AUTH Opcjonalnie ustawiana przez sshd(8), zmienna ta moze zawierac sciezke do pliku zawierajacego liste pomyslnie dokonanych metod uwierzytelnia, ktore posluzyly do zestawienia sesji, w tym uzytych kluczy publicznych. TZ Zmienna ta sluzy do wskazania biezacej strefy czasowej, jesli byla ustawiona przy uruchomieniu demona (tj. demon przekazal te wartosc nowym polaczeniom). USER Ustawiana na nazwe logujacego sie uzytkownika. Dodatkowo ssh odczytuje plik ~/.ssh/environment i dodaje wiersze w postaci ,,NAZWA-ZMIENNEJ=wartosc" do srodowiska, jesli plik ten istnieje, a uzytkownicy moga zmieniac swoje srodowisko. Wiecej informacji w opisie opcji PermitUserEnvironment w podreczniku sshd_config(5). PLIKI ~/.rhosts Plik uzywany przy uwierzytelnianiu na podstawie danej stacji (zob. wyzej). Na niektorych komputerach moze byc konieczne, aby plik ten byl odczytywalny dla wszystkich, jesli katalog domowy uzytkownika jest na partycji NFS, poniewaz sshd(8) odczytuje go jako root. Dodatkowo plik ten musi byc wlasnoscia uzytkownika i nie moze posiadac uprawnien do zapisu dla kogokolwiek innego. Zalecany zestaw uprawnien w wiekszosci konfiguracji to: odczyt/zapis dla uzytkownika i brak dostepu dla pozostalych. ~/.shosts Plik uzywany dokladnie w ten sam sposob jak .rhosts, lecz zezwala na uwierzytelnienie na podstawie danej stacji bez dozwolenia logowan za pomoca rlogin/rsh. ~/.ssh/ Katalog jest domyslnym polozeniem dla calej konfiguracji danego uzytkownika oraz informacji uwierzytelniajacych. Nie ma ogolnego wymagania, aby zawartosc calego katalogu byla utrzymywana w tajemnicy, ale zaleca sie uprawnienia do odczytu/zapisu/wykonania dla uzytkownika i brak dostepu dla pozostalych. ~/.ssh/authorized_keys Lista kluczy publicznych (ECDSA, Ed25519, RSA), ktore moga sluzyc do logowania sie jako dany uzytkownik. Format tego pliku opisano w podreczniku sshd(8). Plik ten nie jest zbyt wrazliwy, ale zaleca sie uprawnienia do odczytu/zapisu dla uzytkownika i brak dostepu dla pozostalych. ~/.ssh/config Plik konfiguracyjny uzytkownika. Format pliku i opcje konfiguracyjne opisano w podreczniku ssh_config(5). Ze wzgledu na mozliwosci naduzyc, plik musi posiadac scisle uprawnienia: odczyt/zapis przez uzytkownika i brak zapisu przez pozostalych. ~/.ssh/environment Dodatkowe definicje zmiennych srodowiskowych: zob. SRODOWISKO, powyzej. ~/.ssh/id_ecdsa ~/.ssh/id_ecdsa_sk ~/.ssh/id_ed25519 ~/.ssh/id_ed25519_sk ~/.ssh/id_rsa Zawieraja prywatne klucze do uwierzytelniania. Pliki te zawieraja wrazliwe dane i powinny byc odczytywalne dla uzytkownika ale niedostepne dla innych (brak uprawnienia do odczytu/zapisu/wykonania). ssh po prostu pominie klucz prywatny, ktory jest dostepny dla innych. Przy tworzeniu klucza prywatnego mozna ustawic fraze kodujaca, ktora zostanie uzyta do zaszyfrowania wrazliwych czesci tego pliku za pomoca AES-128. ~/.ssh/id_ecdsa.pub ~/.ssh/id_ecdsa_sk.pub ~/.ssh/id_ed25519.pub ~/.ssh/id_ed25519_sk.pub ~/.ssh/id_rsa.pub Zawieraja klucze publiczne do uwierzytelniania. Pliki te nie zawieraja danych wrazliwych i moga byc (ale nie musza) odczytywalne dla wszystkich. ~/.ssh/known_hosts Zawiera liste kluczy stacji dla wszystkich stacji, do ktorych uzytkownik sie logowal, a nie wystepuja w systemowej liscie kluczy znanych stacji. Wiecej informacji na temat formatu tego pliku opisano w podreczniku sshd(8). ~/.ssh/rc Polecenia w pliku sa wykonywane przez ssh, gdy uzytkownik sie zaloguje, zaraz przed uruchomieniem powloki uzytkownika (lub polecenia). Wiecej informacji w podreczniku sshd(8). /etc/hosts.equiv Plik sluzy do uwierzytelniania w oparciu o stacje (zob. wyzej). Powinien byc zapisywalny tylko przez roota. /etc/ssh/shosts.equiv Plik uzywany dokladnie w ten sam sposob jak hosts.equiv, lecz zezwala na uwierzytelnienie na podstawie danej stacji bez dozwolenia logowan za pomoca rlogin/rsh. /etc/ssh/ssh_config Systemowy plik konfiguracyjny. Format pliku i opcje konfiguracji opisano w podreczniku ssh_config(5). /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key /etc/ssh/ssh_host_rsa_key Pliki zawieraja czesci prywatne kluczy stacji i sluza do uwierzytelniania w oparciu o stacje. /etc/ssh/ssh_known_hosts Systemowa lista kluczy znanych stacji. Plik powinien byc przygotowany przez administratora systemu w taki sposob, aby zawieral publiczne klucze stacji wszystkich komputerow w danej organizacji. Powinien byc odczytywalny dla wszystkich. Wiecej informacji o formacie tego pliku opisano w podreczniku sshd(8). /etc/ssh/sshrc Polecenia w pliku sa wykonywane przez ssh, gdy uzytkownik sie zaloguje, zaraz przed uruchomieniem powloki uzytkownika (lub polecenia). Wiecej informacji w podreczniku sshd(8). STATUS ZAKONCZENIA ssh wychodzi ze statusem zakonczenia zdalnego polecenia lub z 255, jesli wystapil blad. ZOBACZ TAKZE scp(1), sftp(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), ssh-keyscan(1), tun(4), ssh_config(5), ssh-keysign(8), sshd(8) STANDARDY S. Lehtinen and C. Lonvick, The Secure Shell (SSH) Protocol Assigned Numbers, RFC 4250, styczen 2006. T. Ylonen and C. Lonvick, The Secure Shell (SSH) Protocol Architecture, RFC 4251, styczen 2006. T. Ylonen and C. Lonvick, The Secure Shell (SSH) Authentication Protocol, RFC 4252, styczen 2006. T. Ylonen and C. Lonvick, The Secure Shell (SSH) Transport Layer Protocol, RFC 4253, styczen 2006. T. Ylonen and C. Lonvick, The Secure Shell (SSH) Connection Protocol, RFC 4254, styczen 2006. J. Schlyter and W. Griffin, Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints, RFC 4255, styczen 2006. F. Cusack and M. Forssen, Generic Message Exchange Authentication for the Secure Shell Protocol (SSH), RFC 4256, styczen 2006. J. Galbraith and P. Remaker, The Secure Shell (SSH) Session Channel Break Extension, RFC 4335, styczen 2006. M. Bellare, T. Kohno, and C. Namprempre, The Secure Shell (SSH) Transport Layer Encryption Modes, RFC 4344, styczen 2006. B. Harris, Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol, RFC 4345, styczen 2006. M. Friedl, N. Provos, and W. Simpson, Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, marzec 2006. J. Galbraith and R. Thayer, The Secure Shell (SSH) Public Key File Format, RFC 4716, listopad 2006. D. Stebila and J. Green, Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer, RFC 5656, grudzien 2009. A. Perrig and D. Song, Hash Visualization: a New Technique to improve Real-World Security, 1999, International Workshop on Cryptographic Techniques and E-Commerce (CrypTEC '99). AUTORZY OpenSSH wywodzi sie z pierwotnego i wolnego wydania ssh 1.2.12 autorstwa Tatu Ylonena. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt i Dug Song usuneli wiele bledow, dodali na nowo nowsze funkcje i utworzyli OpenSSH. Markus Friedl mial udzial w dodaniu obslugi protokolow SSH w wersji 1.5 i 2.0. TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3: https://www.gnu.org/licenses/gpl-3.0.html lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net Linux 6.16.7-arch1-1 December 4, 2024 Linux 6.16.7-arch1-1