.\" -*- coding: UTF-8 -*- .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland .\" All rights reserved .\" .\" As far as I am concerned, the code I have written for this software .\" can be used freely for any purpose. Any derived versions of this .\" software must be clearly marked as such, and if the derived work is .\" incompatible with the protocol description in the RFC file, it must be .\" called by a name other than "ssh" or "Secure Shell". .\" .\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved. .\" Copyright (c) 1999 Aaron Campbell. All rights reserved. .\" Copyright (c) 1999 Theo de Raadt. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" $OpenBSD: ssh.1,v 1.444 2024/12/04 14:37:55 djm Exp $ .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .Dd $Mdocdate: December 4 2024 $ .Dt SSH 1 .Os .Sh NAZWA .Nm ssh .Nd klient zdalnego logowania OpenSSH .Sh SKŁADNIA .Nm ssh .Op Fl 46AaCfGgKkMNnqsTtVvXxYy .Op Fl B Ar interfejs-przypisania .Op Fl b Ar adres-przypisania .Op Fl c Ar określenie-szyfru .Op Fl D Oo Ar adres-przypisania : Oc Ns Ar port .Op Fl E Ar plik-dziennika .Op Fl e Ar znak-specjalny .Op Fl F Ar plik-konfiguracyjny .Op Fl I Ar pkcs11 .Op Fl i Ar plik-tożsamości .Op Fl J Ar położenie-docelowe .Op Fl L Ar adres .Op Fl l Ar nazwa-logowania .Op Fl m Ar określenie-mac .Op Fl O Ar polecenie-npz .Op Fl o Ar opcja .Op Fl P Ar znacznik .Op Fl p Ar port .Op Fl R Ar adres .Op Fl S Ar ścieżka-npz .Op Fl W Ar stacja : Ns Ar port .Op Fl w Ar lokalny-tun Ns Op : Ns Ar zdalny-tun .Ar położenie-docelowe .Op Ar polecenie Op Ar argument ... .Nm ssh .Op Fl Q Ar opcja-odpytania .Sh OPIS .Nm ssh (klient SSH) jest programem służącym do logowania się na zdalnym komputerze i do wykonywania poleceń na zdalnym komputerze. Został zaprojektowany, aby zapewnić bezpieczną, szyfrowaną komunikację pomiędzy dwiema niezaufanymi stacjami, poprzez niezabezpieczoną sieć. Bezpiecznym kanałem można przekierowywać również połączenia X11, wybrane porty TCP i gniazda domeny Uniksa. .Pp .Nm ssh łączy się i loguje do podanego .Ar położenia-docelowego , które można podać określić jako .Sm off .Oo użytkownik @ Oc nazwa-stacji .Sm on lub jako URI w postaci .Sm off .No ssh:// Oo użytkownik @ Oc nazwa-stacji Op : port . .Sm on Użytkownik musi potwierdzić swoją tożsamość wobec zdalnego komputera jedną z wielu metod. .Pp Jeśli poda się .Ar polecenie , zostanie ono wykonane na zdalnym komputerze zamiast powłoki logowania. Jako .Ar polecenie można podać pełen wiersz polecenia lub może ono zawierać dodatkowe argumenty. Jeśli się je przekaże, argumenty zostaną dołączone do polecenia, rozdzielone spacjami, przed wysłaniem ich do wykonania przez serwer. .Pp Dostępne są następujące opcje: .Pp .Bl -tag -width Ds -compact .It Fl 4 Wymusza na .Nm ssh używanie tylko adresów IPv4. .Pp .It Fl 6 Wymusza na .Nm ssh używanie tylko adresów IPv6. .Pp .It Fl A Włącza przekierowywanie połączeń z agenta uwierzytelniania, takiego jak .Xr ssh-agent 1 . Można je określić również w zależności od stacji, w pliku konfiguracyjnym. .Pp Przekierowywania agenta należy włączać ostrożnie. Użytkownicy z możliwością pominięcia uprawnień plików na stacji zdalnej (dla gniazd agenta z domeny Uniksa) mogą uzyskać dostęp do lokalnego agenta za pomocą przekierowanego połączenia. Atakujący nie może uzyskać danych klucza z agenta, ale może przeprowadzić operacje na kluczach, które pozwolą mu się uwierzytelnić korzystając z tożsamości załadowanej do agenta. Bezpieczniejszą alternatywą może być skorzystanie z serwera pośredniczącego (zob. .Fl J ) . .Pp .It Fl a Wyłącza przekierowywanie połączeń z agenta uwierzytelniania. .Pp .It Fl B Ar interfejs-przypisania Przypisuje do adresu .Ar interfejsu-przypisania przed podjęciem próby połączenia ze zdalnym komputerem. Przydatne tylko w systemach o kilku adresach. .Pp .It Fl b Ar adres-przypisania Używa .Ar adresu-przypisania na lokalnym komputerze jako adresu źródłowego połączenia. Przydatne tylko w systemach o kilku adresach. .Pp .It Fl C Żąda kompresji wszystkich danych (w tym standardowych: wejścia, wyjścia i wyjścia błędów oraz danych w przekierowanych połączeniach domeny Uniksa, TCP i X11). Używa tego samego algorytmu kompresji z .Xr gzip 1 . Kompresja jest pożądana przy liniach modemowych i innych wolnych połączeniach, ale jedynie spowolni działanie w szybkich sieciach. Domyślną wartość można ustawić według stacji w plikach konfiguracyjnych, zob. opcję .Cm Compression w .Xr ssh_config 5 . .Pp .It Fl c Ar określenie-szyfru Wybiera szyfr używany do zabezpieczenia sesji. .Ar określenie-szyfru jest listą szyfrów, w kolejności według preferencji, z przecinkiem jako separatorem. Zob. słowo kluczowe .Cm Ciphers w .Xr ssh_config 5 , aby dowiedzieć się więcej. .Pp .It Fl D Xo .Sm off .Oo Ar adres-przypisania : Oc .Ar port .Sm on .Xc Określa lokalne \[Bq]dynamiczne\[rq] przekierowanie portów na poziomie aplikacji. Działa to na zasadzie przydzielenia gniazda do nasłuchu na .Ar porcie po stronie lokalnej, opcjonalnie przypisanego do określonego .Ar adresu-przypisania . Gdy do tego portu tworzone jest połączenie, jest ono przekierowywane bezpiecznym kanałem, a do określenia gdzie należy połączyć się z komputera zdalnego służy protokół aplikacji. Obecnie obsługiwane są protokoły SOCKS4 i SOCKS5, a .Nm ssh będzie działał jako serwer SOCKS. Jedynie root może przekierowywać uprzywilejowane porty. Dynamiczne przekierowanie portów można wskazać również w pliku konfiguracyjnym. .Pp Adresy IPv6 można podać ujmując je w nawiasy kwadratowe. Jedynie root może przekierowywać uprzywilejowane porty. Domyślnie, lokalny port jest przypisywany zgodnie z ustawieniem .Cm GatewayPorts . Można jednak podać .Ar adres-przypisania , aby przypisać połączenie do określonego adresu. .Ar Adres-przypisania z wartością \[Bq]localhost\[rq] oznacza, że port nasłuchu jest przypisany wyłącznie do użytku lokalnego, a pusty adres lub \[Bq]*\[rq] wskazuje, że port ma być dostępny ze wszystkich interfejsów. .Pp .It Fl E Ar plik-dziennika Dopisuje dzienniki debugowania do .Ar pliku-dziennika , zamiast na standardowe wyjście błędów. .Pp .It Fl e Ar znak-specjalny Ustawia znak specjalny do sesji z pty (domyślnie: \[Bq]~\[rq]). Znak specjalny jest rozpoznawany tylko na początku wiersza. Znak specjalny, po którym nastąpi: kropka \[Bq].\[rq] \[en] zamyka połączenie, control-Z \[en] zawiesza połączenie, kolejny znak specjalny \[en] wysyła pojedynczy znak specjalny. Ustawienie tego znaku na \[Bq]none\[rq] wyłącza znaki specjalne i czyni sesję w pełni transparentną. .Pp .It Fl F Ar plik-konfiguracyjny Określa alternatywny plik konfiguracyjny użytkownika. Jeśli poda się plik konfiguracyjny w wierszu polecenia, systemowy plik konfiguracyjny .Pq Pa /etc/ssh/ssh_config zostanie zignorowany. Domyślnym plikiem konfiguracyjnym użytkownika jest .Pa ~/.ssh/config . Argument \[Bq]none\[rq] wyłączy odczyt wszelkich plików konfiguracyjnych. .Pp .It Fl f Żąda przejścia .Nm ssh w tło, zaraz przed wykonaniem polecenia. Przydatne, gdy .Nm ssh będzie pytał o hasła lub frazy kodujące, lecz użytkownik chce dokonać tego w tle. Wymusza .Fl n . Zalecanym sposobem uruchamiania programów X11 po stronie zdalnej jest coś w stylu .Ic ssh -f stacja xterm . .Pp Jeśli opcja konfiguracyjna .Cm ExitOnForwardFailure zostanie ustawiona na \[Bq]yes\[rq], to klient uruchomiony z opcją .Fl f poczeka na poprawne zestawienie wszelkich zdalnych przekierowań portów, przed przejściem w tło. Szczegóły wskazano w opisie .Cm ForkAfterAuthentication w podręczniku .Xr ssh_config 5 . .Pp .It Fl G Powoduje, że .Nm ssh wypisze swoją konfigurację po przeanalizowaniu bloków .Cm Host oraz .Cm Match , a potem wyjdzie. .Pp .It Fl g Zezwala zdalnym stacjom na połączenie do przekierowanych portów lokalnych. Przy korzystaniu z połączenia zwielokrotnionego, opcja ta musi być podana procesowi nadrzędnemu. .Pp .It Fl I Ar pkcs11 Określa bibliotekę współdzieloną PKCS#11, którą .Nm ssh powinien używać do komunikacji z tokenem PKCS#11, zapewniającym klucze do uwierzytelnienia użytkownika. .Pp .It Fl i Ar plik-tożsamości Wybiera plik, z którego odczytywana jest tożsamość (klucz prywatny) dla klucza publicznego w celu uwierzytelniania. Można również podać plik klucza publicznego, w celu użycia powiązanego klucza prywatnego załadowanego za pomocą .Xr ssh-agent 1 w sytuacji, gdy plik klucza prywatnego nie jest dostępny lokalnie. Wartość domyślna obejmuje: .Pa ~/.ssh/id_rsa , .Pa ~/.ssh/id_ecdsa , .Pa ~/.ssh/id_ecdsa_sk , .Pa ~/.ssh/id_ed25519 i .Pa ~/.ssh/id_ed25519_sk . Pliki tożsamości można również określić wobec konkretnej stacji w pliku konfiguracyjnym. Można podać opcję .Fl i wielokrotnie (i określić wiele tożsamości w plikach konfiguracyjnych). Jeśli nie podano jawnie certyfikatu dyrektywą .Cm CertificateFile , .Nm ssh spróbuje także załadować informacje o certyfikacie, z pliku o nazwie powstałej przez dołączenie cząstki .Pa -cert.pub , do nazwy pliku tożsamości. .Pp .It Fl J Ar położenie-docelowe Łączy się ze stacją docelową, tworząc wcześniej połączenie .Nm ssh ze stacją pośredniczącą opisaną w argumencie .Ar położenie-docelowe , a następnie tworząc przekierowanie TCP do końcowego położenia ze stacji pośredniczącej. Można podać wiele stacji pośredniczących, rozdzielając je przecinkiem. Adresy IPv6 można podać, ujmując je w nawiasy kwadratowe. Jest to skrót wobec dyrektywy konfiguracyjnej .Cm ProxyJump . Proszę zauważyć, że dyrektywy konfiguracyjne podawane w wierszu polecenia generalnie stosują się tylko do końcowej stacji, a nie do stacji pośredniczących. Plik .Pa ~/.ssh/config pozwoli określić konfigurację dla stacji pośredniczących. .Pp .It Fl K Włącza uwierzytelnianie w oparciu o GSSAPI oraz przekierowanie (delegację) poświadczeń GSSAPI na serwer. .Pp .It Fl k Wyłącza przekierowanie (delegację) poświadczeń GSSAPI na serwer. .Pp .It Fl L Xo .Sm off .Oo Ar adres-powiązania : Oc .Ar port : stacja : port-stacji .Sm on .Xc .It Fl L Xo .Sm off .Oo Ar adres-powiązania : Oc .Ar port : zdalne-gniazdo .Sm on .Xc .It Fl L Xo .Sm off .Ar lokalne-gniazdo : stacja : port-stacji .Sm on .Xc .It Fl L Xo .Sm off .Ar lokalne-gniazdo : zdalne-gniazdo .Sm on .Xc Określa, że połączenia do danego portu TCP lub gniazda Uniksa na lokalnej stacji (kliencie) mają być przekierowywane do podanej stacji i portu, lub gniazda Uniksa, na zdalnej stacji. Działa to przez przydzielenie gniazda do nasłuchu albo na .Ar porcie TCP po stronie lokalnej, opcjonalnie powiązanego z podanym .Ar adres-powiązania , lub na gnieździe Uniksa. Gdy tylko nawiązywane jest połączenie z lokalnym portem lub gniazdem, połączenie jest przekierowywane poprzez bezpieczny kanał do portu .Ar port-stacji na .Ar stacji albo do gniazda Uniksa .Ar zdalne-gniazdo na stacji zdalnej. .Pp Przekierowania portu można określić również w pliku konfiguracyjnym. Tylko superużytkownik może przekierowywać uprzywilejowane porty. Adresy IPv6 można podać, ujmując je w nawiasy kwadratowe. .Pp Domyślnie, porty lokalne są przypisywane zgodnie z ustawieniem .Cm GatewayPorts . Jednak można podać .Ar adres-przypisania aby przypisać połączenie do określonego adresu. .Ar Adres-przypisania z wartością \[Bq]localhost\[rq] oznacza, że port nasłuchu jest przypisany wyłącznie do użytku lokalnego, a pusty adres lub \[Bq]*\[rq] wskazuje, że port ma być dostępny ze wszystkich interfejsów. .Pp .It Fl l Ar nazwa-logowania Określa użytkownika, jako który ma nastąpić zalogowanie na zdalnym komputerze. Można go również określić w zależności od stacji, w pliku konfiguracyjnym. .Pp .It Fl M Umieszcza klienta .Nm ssh w trybie \[Bq]nadrzędnym\[rq] przy dzieleniu połączenia. Wielokrotna opcja .Fl M umieszcza .Nm ssh w trybie \[Bq]nadrzędnym\[rq], jednak wymagane jest potwierdzenie za pomocą .Xr ssh-askpass 1 , przed każdą operacją zmieniającą stan zwielokrotnienia (np. otwarcie nowej sesji). Więcej szczegółów w opisie .Cm ControlMaster w podręczniku .Xr ssh_config 5 . .Pp .It Fl m Ar określenie-mac Lista algorytmów MAC (ang. message authentication code - kod uwierzytelnienia wiadomości), podanych w preferowanej kolejności, używająca przecinka jako separatora. Więcej informacji w opisie słowa kluczowego .Cm MACs w podręczniku .Xr ssh_config 5 . .Pp .It Fl N Nie wykonuje zdalnego polecenia. Przydatne, jeśli oczekiwane jest jedynie przekierowanie portów. Więcej informacji w opisie .Cm SessionType w podręczniku .Xr ssh_config 5 . .Pp .It Fl n Przekierowuje standardowe wejście z .Pa /dev/null (czyli zapobiega odczytowi ze standardowego wejścia). Konieczne, gdy .Nm ssh ma działać w tle. Popularną sztuczką jest korzystanie z tej opcji w celu uruchamiania programów X11 na zdalnym komputerze. Na przykład .Ic ssh -n shadows.cs.hut.fi emacs & uruchomi program emacs na shadows.cs.hut.fi, a połączenie X11 zostanie automatycznie przekierowane bezpiecznym kanałem. Program .Nm ssh zostanie umieszczony w tle (nie zadziała to, gdy .Nm ssh musi zapytać o hasło lub frazę kodującą, zob. też opcję .Fl f ) . Więcej szczegółów w opisie .Cm StdinNull w podręczniku .Xr ssh_config 5 . .Pp .It Fl O Ar polecenie-npz Steruje nadrzędnym procesem zwielokrotniania aktywnego połączenia. Gdy poda się opcję .Fl O , argument .Ar ctl_cmd jest interpretowany i przekazywany procesowi nadrzędnemu. Prawidłowe polecenia to: \[Bq]check\[rq] (sprawdza, czy proces nadrzędny działa), \[Bq]forward\[rq] (żąda przekierowania bez wykonywania polecenia), \[Bq]cancel\[rq] (odwołuje przekierowania), \[Bq]proxy\[rq] (łączy się z nadrzędnym procesem zwielokrotniania w trybie pośredniczenia), \[Bq]exit\[rq] (żąda wyjścia procesu nadrzędnego) oraz \[Bq]stop\[rq] (żąda zatrzymywania przyjmowania kolejnych żądań zwielokrotniania przez proces nadrzędny). .Pp .It Fl o Ar opcja Może posłużyć do przekazania opcji w formacie używanym w pliku konfiguracyjnym. Przydatne, gdy brak dla nich oddzielnych opcji wiersza poleceń. Pełny opis poniższych opcji i ich dopuszczalnych wartości podano w podręczniku .Xr ssh_config 5 . .Pp .Bl -tag -width Ds -offset indent -compact .It AddKeysToAgent .It AddressFamily .It BatchMode .It BindAddress .It BindInterface .It CASignatureAlgorithms .It CanonicalDomains .It CanonicalizeFallbackLocal .It CanonicalizeHostname .It CanonicalizeMaxDots .It CanonicalizePermittedCNAMEs .It CertificateFile .It ChannelTimeout .It CheckHostIP .It Ciphers .It ClearAllForwardings .It Compression .It ConnectTimeout .It ConnectionAttempts .It ControlMaster .It ControlPath .It ControlPersist .It DynamicForward .It EnableEscapeCommandline .It EnableSSHKeysign .It EscapeChar .It ExitOnForwardFailure .It FingerprintHash .It ForkAfterAuthentication .It ForwardAgent .It ForwardX11 .It ForwardX11Timeout .It ForwardX11Trusted .It GSSAPIAuthentication .It GSSAPIDelegateCredentials .It GatewayPorts .It GlobalKnownHostsFile .It HashKnownHosts .It Host .It HostKeyAlgorithms .It HostKeyAlias .It HostbasedAcceptedAlgorithms .It HostbasedAuthentication .It Hostname .It IPQoS .It IdentitiesOnly .It IdentityAgent .It IdentityFile .It IgnoreUnknown .It Include .It KbdInteractiveAuthentication .It KbdInteractiveDevices .It KexAlgorithms .It KnownHostsCommand .It LocalCommand .It LocalForward .It LogLevel .It LogVerbose .It MACs .It NoHostAuthenticationForLocalhost .It NumberOfPasswordPrompts .It ObscureKeystrokeTiming .It PKCS11Provider .It PasswordAuthentication .It PermitLocalCommand .It PermitRemoteOpen .It Port .It PreferredAuthentications .It ProxyCommand .It ProxyJump .It ProxyUseFdpass .It PubkeyAcceptedAlgorithms .It PubkeyAuthentication .It RekeyLimit .It RemoteCommand .It RemoteForward .It RequestTTY .It RequiredRSASize .It RevokedHostKeys .It SecurityKeyProvider .It SendEnv .It ServerAliveCountMax .It ServerAliveInterval .It SessionType .It SetEnv .It StdinNull .It StreamLocalBindMask .It StreamLocalBindUnlink .It StrictHostKeyChecking .It SyslogFacility .It TCPKeepAlive .It Tag .It Tunnel .It TunnelDevice .It UpdateHostKeys .It User .It UserKnownHostsFile .It VerifyHostKeyDNS .It VisualHostKey .It XAuthLocation .El .Pp .It Fl P Ar znacznik Podaje znacznik, który może posłużyć do wyboru określonej konfiguracji z pliku .Xr ssh_config 5 . Więcej informacji w opisie słów kluczowych .Cm Tag i .Cm Match w podręczniku .Xr ssh_config 5 . .It Fl p Ar port Port, do którego ma nastąpić połączenie na zdalnej stacji. Można go również określić w zależności od stacji, w pliku konfiguracyjnym. .Pp .It Fl Q Ar opcja-odpytania Odpytuje o algorytmy obsługujące jedną z poniższych funkcji: .Ar cipher (obsługa szyfrów symetrycznych), .Ar cipher-auth (obsługa szyfrów symetrycznych obsługujących szyfrowanie z uwierzytelnieniem), .Ar help (obsługa zapytań do użycia z opcją .Fl Q ) , .Ar mac (obsługa kodów integralności komunikatów), .Ar kex (algorytmy wymiany klucza), .Ar key (typy kluczy), .Ar key-ca-sign (prawidłowe algorytmy podpisów ośrodków certyfikacji dla certyfikatów), .Ar key-cert (typy kluczy certyfikatów), .Ar key-plain (typy kluczy niebędących certyfikatami), .Ar key-sig (wszystkie typy kluczy i algorytmy podpisów), .Ar protocol-version (obsługiwane wersje protokołu SSH) i .Ar sig (obsługiwane algorytmy podpisów). Alternatywnie, dowolne słowo kluczowe z .Xr ssh_config 5 lub .Xr sshd_config 5 przyjmujące listę algorytmów może posłużyć jako alias odpowiadającej opcji-odpytania. .Pp .It Fl q Tryb cichy. Wyłącza większość ostrzeżeń i komunikatów diagnostycznych. .Pp .It Fl R Xo .Sm off .Oo Ar adres-powiązania : Oc .Ar port : stacja : port-stacji .Sm on .Xc .It Fl R Xo .Sm off .Oo Ar adres-przypisania : Oc .Ar port : lokalne-gniazdo .Sm on .Xc .It Fl R Xo .Sm off .Ar zdalne-gniazdo : stacja : port-stacji .Sm on .Xc .It Fl R Xo .Sm off .Ar zdalne-gniazdo : lokalne-gniazdo .Sm on .Xc .It Fl R Xo .Sm off .Oo Ar adres-przypisania : Oc .Ar port .Sm on .Xc Określa, że połączenia z danym portem TCP lub gniazdem Uniksa na zdalnej stacji (serwerze) mają być przekierowywane na stronę lokalną. .Pp Działa to, poprzez przydzielenia gniazda do nasłuchu albo .Ar portu TCP, albo gniazda Uniksa po stronie zdalnej. Gdy do tego portu lub gniazda Uniksa tworzone jest połączenie, jest ono przekierowywane poprzez bezpieczny kanał, a połączenie jest tworzone z lokalnego komputera albo do jawnie podanego położenia docelowego, określonego portem .Ar stacji .Ar port-stacji lub do .Ar lokalnego-gniazda , albo, jeśli nie podano jawnie lokalizacji, .Nm ssh będzie działał jako serwer pośredniczący SOCKS 4/5, przekierowując połączenia do celów zażądanych przez zdalnego klienta SOCKS. .Pp Przekierowania portu można określić również w pliku konfiguracyjnym. Porty uprzywilejowane mogą być przekierowywane tylko, jeśli zalogowano się jako root na zdalnym komputerze. Adresy IPv6 można podać, ujmując je w nawiasy kwadratowe. .Pp Domyślnie, gniazda nasłuchujące TCP na serwerze będą powiązane tylko z interfejsem pętli zwrotnej. Można to przesłonić, podając .Ar adres-powiązania . Pusty .Ar adres-powiązania lub adres o wartości \[Bq]*\[rq] wskazuje, że gniazdo zdalne ma nasłuchiwać na wszystkich interfejsach. Podanie zdalnego .Ar adresu-powiązania powiedzie się tylko, jeśli na serwerze włączono opcję .Cm GatewayPorts (zob. .Xr sshd_config 5 ) . .Pp Jeśli argumentem .Ar port będzie \[Bq]0\[rq], to nasłuchujący port zostanie dynamicznie przydzielony na serwerze i zgłoszony klientowi w momencie uruchomienia. Przy użyciu razem z opcją .Ic -O forward , przydzielony port zostanie wypisany na standardowe wyjście. .Pp .It Fl S Ar ścieżka-npz Określa położenie gniazda sterującego dzieleniem połączenia; łańcuch \[Bq]none\[rq] wyłączy dzielenie połączenia. Więcej szczegółów w opisie .Cm ControlPath i .Cm ControlMaster w podręczniku .Xr ssh_config 5 . .Pp .It Fl s Może posłużyć do zażądania przywołania podsystemu na zdalnym systemie. Podsystemy korzystają z SSH jako bezpiecznej komunikacji dla innych aplikacji (np.\& .Xr sftp 1 ) . Podsystem jest określony jako polecenie zdalne. Więcej szczegółów w opisie .Cm SessionType w podręczniku .Xr ssh_config 5 . .Pp .It Fl T Wyłącza przydzielenie pseudoterminala. .Pp .It Fl t Wymusza przydzielenie pseudoterminala. Można w ten sposób wykonać dowolne programy korzystające z screen na zdalnym komputerze, co może być bardzo przydatne np. przy implementacji usług menu. Wielokrotna opcja .Fl t wymusi przydzielenie tty, nawet, gdy .Nm ssh nie ma lokalnego tty. .Pp .It Fl V Wyświetla numer wersji i wychodzi. .Pp .It Fl v Tryb szczegółowy. Powoduje, że .Nm ssh wypisuje szczegółowe komunikaty informujące o postępach programu. Przydatne do rozwiązywania problemów z połączeniem, uwierzytelnieniem i konfiguracją. Opcja .Fl v podana wielokrotnie zwiększa szczegółowość. Jej maksymalny poziom to 3. .Pp .It Fl W Ar stacja : Ns Ar port Żąda, aby standardowe wejście i standardowe wyjście na kliencie były przekierowywane do .Ar stacji i .Ar portu poprzez bezpieczny kanał. Wymusza .Fl N , .Fl T , .Cm ExitOnForwardFailure i .Cm ClearAllForwardings , choć można je przesłonić w pliku konfiguracyjnym lub za pomocą opcji .Fl o wiersza poleceń. .Pp .It Fl w Xo .Ar lokalny-tun Ns Op : Ns Ar zdalny-tun .Xc Żąda przekierowanie urządzenia tunelu za pomocą podanych urządzeń .Xr tun 4 pomiędzy klienckim .Pq Ar lokalnym-tun i .Pq Ar zdalnym-tun po stronie serwera. .Pp Urządzenia te można określić numerycznym identyfikatorem lub słowem kluczowym \[Bq]any\[rq], które użyje następnego dostępnego urządzenia tunelu. Jeśli nie poda się .Ar zdalnego-tun , przyjmie on wartość domyślną \[Bq]any\[rq]. Zob. też dyrektywy .Cm Tunnel i .Cm TunnelDevice w podręczniku .Xr ssh_config 5 . .Pp Jeśli dyrektywa .Cm Tunnel jest nieustawiona, będzie ustawiona na domyślny tryb tunelowania, którym jest \[Bq]point-to-point\[rq]. Jeśli oczekiwany jest inny tryb przekierowania .Cm Tunnel , trzeba go określić przed podaniem opcji .Fl w . .Pp .It Fl X Włącza przekierowanie X11. Można to również określić w zależności od stacji, w pliku konfiguracyjnym. .Pp Należy zachować ostrożność przed włączaniem przekierowania X11. Użytkownicy z możliwością pominięcia uprawnień pliku na stacji zdalnej (dla bazy danych autoryzacji użytkowników X) mogą uzyskać dostęp do lokalnego ekranu X11 za pomocą przekierowanego połączenia. Atakujący może następnie prowadzić aktywność taką jak podsłuchiwanie wprowadzanych klawiszy. .Pp Z tego względu, przekierowanie X11 podlega domyślnie ograniczeniom wynikającym z rozszerzenia X11 SECURITY. Więcej szczegółów przy opcji .Fl Y .Nm ssh i dyrektywie .Cm ForwardX11Trusted w podręczniku .Xr ssh_config 5 . .Pp .It Fl x Wyłącza przekierowanie X11. .Pp .It Fl Y Włącza zaufane przekierowanie X11. Zaufane przekierowania X11 nie podlegają regulacjom rozszerzenia X11 SECURITY. .Pp .It Fl y Wysyła informacje dziennika do modułu systemowego .Xr syslog 3 . Domyślnie informacje te są wypisywane na standardowe wyjście błędów. .El .Pp .Nm ssh może dodatkowo pozyskiwać dane konfiguracyjne z pliku konfiguracyjnego użytkownika oraz z systemowego pliku konfiguracyjnego. Format pliku i opcje konfiguracyjne opisano w podręczniku .Xr ssh_config 5 . .Sh UWIERZYTELNIANIE Klient SSH OpenSSH obsługuje protokół SSH 2. .Pp Dostępne są następujące metody uwierzytelniania: uwierzytelnianie w oparciu o GSSAPI, uwierzytelnianie na podstawie danej stacji, uwierzytelnianie kluczem publicznym, uwierzytelnianie wymagające wpisania znaków z klawiatury i uwierzytelnianie hasłem. Domyślnie, próba uwierzytelnienia następuje według metod w opisanej kolejności, choć można ją zmienić za pomocą .Cm PreferredAuthentications . .Pp Uwierzytelnianie na podstawie danej stacji działa w następujący sposób. Jeśli komputer, na którym loguje się użytkownik znajduje się na liście w plikach .Pa /etc/hosts.equiv lub .Pa /etc/ssh/shosts.equiv na zdalnym komputerze, użytkownik ten nie jest rootem, a nazwy użytkownika są identyczne po obu stronach, albo gdy pliki .Pa ~/.rhosts lub .Pa ~/.shosts istnieją w katalogu domowym użytkownika na komputerze zdalnym i zawierają wiersz z nazwą komputera klienckiego oraz nazwą użytkownika na tym komputerze, to użytkownik jest przedstawiany do zalogowania się. Dodatkowo serwer .Em musi być w stanie zweryfikować klucz stacji klienckiej (zob. opis .Pa /etc/ssh/ssh_known_hosts i .Pa ~/.ssh/known_hosts , poniżej) aby logowanie się powiodło. Ta metoda uwierzytelnienia zamyka luki bezpieczeństwa związane z atakami IP spoofing (podszywaniem się pod numer IP), DNS spoofing oraz routing spoofing. [Uwaga do administratora: .Pa /etc/hosts.equiv , .Pa ~/.rhosts i w ogólności protokół rlogin/rsh są generalnie do gruntu niebezpieczne i powinny być wyłączone, jeśli oczekuje się zapewnienia bezpieczeństwa.] .Pp Uwierzytelnianie kluczem publicznym działa następująco: ten sposób korzysta z kryptografii klucza publicznego, używając systemów kryptograficznych, w których szyfrowanie i odszyfrowywanie odbywa się odrębnymi kluczami i nie da się wywieść klucza odszyfrowującego z klucza szyfrującego. Każdy użytkownik tworzy zatem do celów uwierzytelniania parę kluczy: publiczny i prywatny. Serwer zna klucz publiczny, ale tylko użytkownik zna klucz prywatny. .Nm ssh automatycznie implementuje protokoły uwierzytelniania kluczem publicznym, za pomocą jednego z algorytmów: ECDSA, Ed25519 lub RSA. .Pp Plik .Pa ~/.ssh/authorized_keys zawiera listę kluczy publicznych, którymi można się zalogować. Gdy użytkownik się zaloguje, .Nm ssh informuje serwer której pary kluczy chciałby użyć do uwierzytelnienia. Klient potwierdza, że ma dostęp do klucza prywatnego, a serwer sprawdza, czy powiązany klucz publiczny jest upoważniony do zaakceptowania danego konta. .Pp Serwer może poinformować klienta o błędach, które uniemożliwiły poprawne uwierzytelnienie kluczem publicznym, ale dopiero po tym, gdy uwierzytelnienie nastąpi inną metodą. Można je sprawdzić zwiększając poziom .Cm LogLevel na .Cm DEBUG lub wyższy (np. opcją .Fl v ) . .Pp Użytkownik tworzy swoją parę kluczy poleceniem .Xr ssh-keygen 1 . Klucz prywatny zostanie umieszczony w pliku .Pa ~/.ssh/id_ecdsa (ECDSA), .Pa ~/.ssh/id_ecdsa_sk (ECDSA po stronie uwierzytelniającego się), .Pa ~/.ssh/id_ed25519 (Ed25519), .Pa ~/.ssh/id_ed25519_sk (Ed25519 po stronie uwierzytelniającego się) lub .Pa ~/.ssh/id_rsa (RSA), a klucz publiczny w pliku .Pa ~/.ssh/id_ecdsa.pub (ECDSA), .Pa ~/.ssh/id_ecdsa_sk.pub (ECDSA po stronie uwierzytelniającego się), .Pa ~/.ssh/id_ed25519.pub (Ed25519), .Pa ~/.ssh/id_ed25519_sk.pub (Ed25519 po stronie uwierzytelniającego się) lub .Pa ~/.ssh/id_rsa.pub (RSA) w katalogu domowym użytkownika. Użytkownik powinien następnie skopiować klucz publiczny do pliku .Pa ~/.ssh/authorized_keys w swoim katalogu domowym na zdalnym komputerze. Plik .Pa authorized_keys odpowiada tradycyjnemu plikowi .Pa ~/.rhosts i posiada po jednym kluczu na wiersz, choć wiersze te mogą być bardzo długie. Po dokonaniu opisanych czynności, użytkownik może zalogować się bez podawania hasła. .Pp Odmianą uwierzytelniania kluczem publicznym jest postać uwierzytelniania certyfikatem: zamiast zbioru kluczy publicznych/prywatnych, korzysta się z podpisanych certyfikatów. Ma to tę zaletę, że pojedynczy, zaufany ośrodek certyfikacji może służyć w miejscu wielu kluczy publicznych/prywatnych. Więcej informacji w rozdziale CERTYFIKATY w podręczniku .Xr ssh-keygen 1 . .Pp Najwygodniejszym sposobem korzystania z kluczy publicznych może być agent uwierzytelniania. Więcej informacji w podręczniku .Xr ssh-agent 1 i (opcjonalnie) w opisie dyrektywy .Cm AddKeysToAgent w .Xr ssh_config 5 . .Pp Uwierzytelnianie wymagające wpisania znaków z klawiatury działa następująco: Serwer wysyła arbitralny łańcuch \[Bq]wyzwanie\[rq] i czeka na odpowiedź, być może powtarzając to wielokrotnie. Przykłady tego typu uwierzytelniania obejmują Uwierzytelniania .Bx (zob. .Xr login.conf 5 ) oraz PAM (część systemów innych niż .Pf Ox ) . .Pp Ostatecznie, jeśli inne metody zawiodą, .Nm ssh pyta użytkownika o hasło. Hasło jest wysyłane do zdalnej stacji celem sprawdzenia; jednak ponieważ cała komunikacja jest szyfrowana, hasła nie da się podsłuchać z sieci. .Pp .Nm ssh automatycznie zarządza i sprawdza bazę danych zawierającą identyfikatory wszystkich stacji, z jakimi był kiedykolwiek użyty. Klucze stacji są przechowywane w pliku .Pa ~/.ssh/known_hosts , w katalogu domowym użytkownika. Dodatkowo, sprawdzany jest automatycznie plik .Pa /etc/ssh/ssh_known_hosts pod kątem znanych stacji. Nowe stacje są dodawane automatycznie do pliku użytkownika. Gdyby identyfikacja stacji uległa zmianie, .Nm ssh ostrzeże o tym i wyłączy uwierzytelnienie hasłem, aby uniknąć podszywania się pod serwer oraz ataków typ man-in-the-middle, które mogłyby służyć do ominięcia szyfrowania. Opcją .Cm StrictHostKeyChecking można ograniczyć logowanie się do komputerów, których klucz stacji nie jest znany lub zmienił się. .Pp Gdy identyfikacja użytkownika zostanie zaakceptowana przez serwer, serwer albo wykonuje podane polecenie w sesji nieinteraktywnej lub, jeśli nie podano polecenia, loguje się do komputera i daje użytkownikowi dostęp do zwykłej powłoki w sesji interaktywnej. Cała komunikacja ze zdalnym poleceniem lub powłoką będzie automatycznie szyfrowana. .Pp Jeśli zażądano sesji interaktywnej, .Nm ssh domyślnie zażąda jedynie pseudoterminala (pty) do sesji interaktywnej, gdy klient taki posiada. Do przesłonięcia tego zachowania można użyć opcji .Fl T i .Fl t . .Pp Jeśli przydzielono pseudoterminal, użytkownik może korzystać ze znaków specjalnych opisanych niżej. .Pp Jeśli nie przydzielono pseudoterminala, sesja jest transparentna i może służyć do wiarygodnego przesyłania danych binarnych. W wielu systemach ustawienie znaku specjalnego na \[Bq]none\[rq] również uczyni sesję transparentną nawet, gdy korzysta się z tty. .Pp Sesja kończy się, gdy polecenie lub powłoka na komputerze zdalnym wyjdzie i wszystkie połączenia X11 i TCP zostaną zamknięte. .Sh ZNAKI SPECJALNE Gdy zażądano pseudoterminala, .Nm ssh obsługuje wiele funkcji za pomocą znaku specjalnego. .Pp Pojedynczy znak tyldy można wysłać wpisując \[Bq]~~\[rq] lub za pomocą podania po tyldzie znaku innego, niż jednego z opisanych niżej. Znak specjalny musi zawsze następować na początku wiersza, aby został zinterpretowany jako takowy. Znak specjalny można zmienić w plikach konfiguracyjnych za pomocą dyrektywy konfiguracyjnej .Cm EscapeChar lub w wierszu polecenia, opcją .Fl e . .Pp Obsługiwane sekwencje specjalne (zakładając domyślny znak specjalny \[Bq]~\[rq]) to: .Bl -tag -width Ds .It Cm ~. Rozłącza się. .It Cm ~^Z .Nm ssh przechodzi w tło. .It Cm ~# Wypisuje przekierowane połączenia. .It Cm ~& .Nm ssh przechodzi w tło przy wylogowaniu, podczas oczekiwania na zakończenie przekierowanego połączenia lub sesji X11. .It Cm ~? Wyświetla listę znaków specjalnych. .It Cm ~B Wysyła BREAK do zdalnego systemu (przydatne tylko, jeśli ten umie go obsłużyć). .It Cm ~C Otwiera wiersz polecenia. Obecnie pozwala to na uzupełnienie przekierowania portów za pomocą opcji .Fl L , .Fl R i .Fl D (zob. wyżej). Pozwala również na odwołanie istniejących przekierowań portów za pomocą .Sm off .Fl KL Oo Ar adres-przypisania : Oc Ar port .Sm on po stronie lokalnej, .Sm off .Fl KR Oo Ar adres-przypisania : Oc Ar port .Sm on po stronie zdalnej oraz .Sm off .Fl KD Oo Ar adres-przypisania : Oc Ar port .Sm on w przypadku dynamicznego przekierowania portów. .Ic !\& Ns Ar polecenie pozwala użytkownikowi na wykonanie polecenia lokalnego, jeśli włączona jest opcja .Ic PermitLocalCommand w pliku .Xr ssh_config 5 . Skrócona pomoc jest dostępna za pomocą opcji .Fl h . .It Cm ~R Żąda odnowienia kluczy połączenia (przydatne tylko, jeśli zdalna stacja to obsługuje). .It Cm ~V Zmniejsza szczegółowość .Pq Ic LogLevel , gdy błędy są wypisywane na standardowe wyjście błędów. .It Cm ~v Zwiększa szczegółowość .Pq Ic LogLevel , gdy błędy są wypisywane na standardowe wyjście błędów. .El .Sh PRZEKIEROWANIE TCP Przekierowanie dowolnych połączeń TCP poprzez bezpieczny kanał można określić w wierszu polecenia albo w pliku konfiguracyjnym. Jednym z zastosowań przekierowania TCP może być bezpieczne połączenie z serwerem pocztowym, innym \[en] omijanie zapór sieciowych. .Pp W poniższym przykładzie obserwujemy szyfrowania komunikacji klienta IRC, nawet w sytuacji, gdy serwer IRC do którego się on łączy, nie obsługuje bezpośrednio szyfrowanej komunikacji. Działa to w następujący sposób: użytkownik łączy się ze zdalną stacją za pomocą .Nm ssh , podając porty, jakie mają posłużyć do przekierowania połączenia. Następnie można uruchomić program lokalnie, a .Nm ssh zaszyfruje i przekieruje połączenie do zdalnego serwera. .Pp Poniższy przykład tuneluje sesję IRC z klienta do serwera IRC pod adresem \[Bq]server.example.com\[rq], dołącza do kanału \[Bq]#users\[rq] z ksywką \[Bq]pinky\[rq], korzystając ze standardowego portu IRC, 6667: .Bd -literal -offset 4n $ ssh -f -L 6667:localhost:6667 server.example.com sleep 10 $ irc -c '#users' pinky IRC/127.0.0.1 .Ed .Pp Opcja .Fl f umieszcza .Nm ssh w tle, a polecenie zdalne \[Bq]sleep 10\[rq] służy daniu czasu (w tym przykładzie 10 sekund) na uruchomienie programu, który będzie używał tunelu. Jeśli w podanym czasie nie zostanie utworzone połączenie, .Nm ssh wyjdzie. .Sh PRZEKIEROWANIE X11 Jeśli zmienna .Cm ForwardX11 jest ustawiona na \[Bq]yes\[rq] (albo zob. opis opcji .Fl X , .Fl x i .Fl Y powyżej), a użytkownik korzysta z X11 (ustawiona jest zmienna środowiskowa .Ev DISPLAY ) , połączenie do ekranu X11 jest automatycznie przekierowywane na stronę zdalną w ten sposób, że programy uruchomione w powłoce (lub poleceniem) są przepuszczane przez szyfrowany tunel, a połączenie do prawdziwego serwera X zostanie utworzone z lokalnego komputera. Użytkownik nie powinien ręcznie ustawiać .Ev DISPLAY . Przekierowywanie połączeń X11 można skonfigurować w wierszu polecenia lub w plikach konfiguracyjnych. .Pp Wartość zmiennej .Ev DISPLAY ustawiona przez .Nm ssh będzie wskazywać na serwer, lecz z numerem ekranu większym niż zero. Jest to normalne zachowanie i ma miejsce, ponieważ .Nm ssh tworzy serwer \[Bq]pośredniczący\[rq] X na serwerze, w celu przekierowania połączeń przez szyfrowany kanał. .Pp .Nm ssh również automatycznie skonfiguruje dane Xauthority na serwerze. W tym celu utworzy losowe ciasteczko autoryzacji, przechowa je w Xauthority na serwerze i zweryfikuje, że wszelkie przekierowywane połączenia identyfikują się tym ciasteczkiem oraz zastąpi je prawdziwym ciasteczkiem po otwarciu połączenia. Prawdziwe ciasteczko autoryzacji nigdy nie jest wysyłane na serwer (a żadne ciasteczka nie są przesyłane jawnie). .Pp Jeśli zmienna .Cm ForwardAgent jest ustawiona na \[Bq]yes\[rq] (lub zob. opis opcji .Fl A i .Fl a powyżej), a użytkownik korzysta z agenta uwierzytelniania, to połączenie z agentem jest automatycznie przekierowywane na stronę zdalną. .Sh WERYFIKOWANIE KLUCZY STACJI Przy łączeniu się z serwerem po raz pierwszy, użytkownikowi prezentowany jest odcisk palca klucza publicznego serwera (chyba, że wyłączono opcję .Cm StrictHostKeyChecking ) . Odciski palców można określić za pomocą .Xr ssh-keygen 1 : .Pp .Dl $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key .Pp Jeśli odcisk palca jest już znany, może być dopasowany, a klucz można zaakceptować lub odrzucić. Jeśli dostępne są tylko przestarzałe (MD5) odciski palców serwera, opcja .Fl E programu .Xr ssh-keygen 1 może posłużyć do obniżenia poziomu algorytmu dopasowującego. .Pp Z powodu trudności w porównywaniu odcisków palców stacji tylko na podstawie wizualnej obserwacji ciągów znaków, istnieje również możliwość wizualnego porównania kluczy stacji, za pomocą .Em grafiki losowej . Ustawiając opcję .Cm VisualHostKey na \[Bq]yes\[rq], przy każdym logowaniu do serwera wyświetlana jest niewielka grafika ASCII, bez znaczenia, czy sama sesja jest interaktywna, czy nie. Ucząc się tego wzoru, tworzonego przez znany serwer, użytkownik może w łatwy sposób przekonać się, gdy klucz stacji zmieni się, bowiem wyświetli to zupełnie odmienny wzór. Jednak wzory te nie są jednoznaczne, zatem wzór wyglądający podobnie do zapamiętanego daje jedynie duże prawdopodobieństwo, że klucz stacji pozostał ten sam, nie stanowi natomiast takiej gwarancji. .Pp Aby pobrać listę odcisków palców wraz z ich losowymi grafikami dla wszystkich znanych stacji, można użyć następującego wiersza polecenia. .Pp .Dl $ ssh-keygen -lv -f ~/.ssh/known_hosts .Pp Jeśli odcisk palca jest nieznany, dostępna jest alternatywna metoda uwierzytelniania: odciski SSH zweryfikowane za pomocą SSH. Dodatkowy rekord zasobu (ang. resource record \[en] RR), SSHFP, jest dodawany do pliku strefy, a łączący się klient może dopasować odcisk palca do odcisku prezentowanego klucza. .Pp W tym przykładzie, następuje połączenie klienta do serwera \[Bq]host.example.com\[rq]. Rekordy zasobu SSHFP powinno się najpierw dodać do pliku strefy dla host.example.com: .Bd -literal -offset indent $ ssh-keygen -r host.example.com. .Ed .Pp Wiersze wyjściowe zostaną dodane do pliku strefy. Aby sprawdzić, że strefa odpowiada na zapytania o odciski palców: .Pp .Dl $ dig -t SSHFP host.example.com .Pp I w końcu następuje połączenie klienta: .Bd -literal -offset indent $ ssh -o "VerifyHostKeyDNS ask" host.example.com [...] Matching host key fingerprint found in DNS. Are you sure you want to continue connecting (yes/no)? .Ed .Pp Więcej informacji przy opcji .Cm VerifyHostKeyDNS w podręczniku .Xr ssh_config 5 . .Sh WIRTUALNE SIECI PRYWATNE (VPN) WYKORZYSTUJĄCE SSH .Nm ssh obsługuje tunelowanie wirtualnych sieci prywatnych (ang. Virtual Private Network \[en] VPN) za pomocą pseudourządzenia sieciowego .Xr tun 4 , pozwalając na bezpieczne złączenie dwóch sieci. Opcja konfiguracyjna .Cm PermitTunnel w .Xr sshd_config 5 kontroluje, czy serwer to obsługuje i na jakim poziomie (2. lub 3. warstwa transportowa). .Pp W poniższym przykładzie klient łączy sieć 10.0.50.0/24 ze zdalną siecią 10.0.99.0/24 za pomocą połączenia typu point-to-point z adresu 10.1.1.1 do 10.1.1.2, zakładając, że serwer SSH działający na bramie sieciowej zdalnej sieci, pod adresem 192.168.1.15, na to pozwala. .Pp Po stronie klienta: .Bd -literal -offset indent # 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 .Ed .Pp Po stronie serwera: .Bd -literal -offset indent # 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 .Ed .Pp Dostęp klienta można dokładnie skonfigurować za pomocą pliku .Pa /root/.ssh/authorized_keys (zob. niżej) i opcji serwera .Cm PermitRootLogin . Poniższy wpis zezwoliłby na połączenia na 1. urządzeniu .Xr tun 4 od użytkownika \[Bq]jane\[rq], a na 2. urządzeniu tun od użytkownika \[Bq]john\[rq], jeśli .Cm PermitRootLogin jest ustawione na \[Bq]forced-commands-only\[rq]: .Bd -literal -offset 2n tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... john .Ed .Pp Konfiguracja korzystająca z SSH pociąga za sobą sporo narzutu, zatem może być właściwsza do konfiguracji tymczasowych, takich jak bezprzewodowe VPN. Dla długotrwałych konfiguracji VPN istnieją lepsze narzędzia, takie jak .Xr ipsecctl 8 i .Xr isakmpd 8 . .Sh ŚRODOWISKO .Nm ssh zwykle ustawi następujące zmienne środowiskowe: .Bl -tag -width SSH_ORIGINAL_COMMAND .It Ev DISPLAY Zmienna .Ev DISPLAY wskazuje położenie serwera X11. Jest automatycznie ustawiana przez .Nm ssh , aby wskazywać na wartość w postaci \[Bq]nazwa-stacji:n\[rq], gdzie \[Bq]nazwa-stacji\[rq] oznacza stację, na której działa powłoka, a \[Bq]n\[rq] jest liczbą całkowitą \*(Ge 1. .Nm ssh używa tej wartości specjalnej do przekierowania połączeń X11 bezpiecznym kanałem. Użytkownicy zwykle nie powinni sami ustawiać zmiennej .Ev DISPLAY , ponieważ uczyniłoby to połączenie X11 niezabezpieczonym (i wymagałoby ręcznego kopiowania wymaganych ciasteczek autoryzujących). .It Ev HOME Ustawiana na ścieżkę katalogu domowego użytkownika. .It Ev LOGNAME Równoważne .Ev USER ; ustawiana ze względu na kompatybilność z systemami korzystającymi z tej zmiennej. .It Ev MAIL Ustawiana na ścieżkę skrzynki pocztowej użytkownika. .It Ev PATH Ustawiana na domyślną .Ev PATH , jak określono przy kompilacji .Nm . .It Ev SSH_ASKPASS Jeśli .Nm ssh wymaga frazy kodującej, odczyta frazę kodującą z bieżącego terminala, jeśli program uruchomiono z terminala. Jeśli .Nm ssh nie ma powiązanego terminala, lecz ustawiono zmienne .Ev DISPLAY i .Ev SSH_ASKPASS , wykonany zostanie program określony zmienną .Ev SSH_ASKPASS i otwarte będzie okno X11 służące do odczytu frazy kodującej. Przydatne szczególnie przy wywołaniu .Nm ssh z .Pa .xsession lub powiązanego skryptu (proszę zauważyć, że na niektórych komputerach aby to zadziałało, może być konieczne przekierowanie wejścia z .Pa /dev/null ) . .It Ev SSH_ASKPASS_REQUIRE Pozwala na dokładniejszą kontrolę nad programem askpass. Jeśli zmienną ustawiono na \[Bq]never\[rq], to .Nm ssh nigdy nie będzie go używał. Jeśli ustawi się ją na \[Bq]prefer\[rq], to przy odpytywaniu o hasła .Nm ssh będzie preferował korzystanie z programu askpass zamiast TTY. Jeśli natomiast zmienną ustawi się na \[Bq]force\[rq]], to program askpass będzie używany do wszelkiego wprowadzania fraz kodujących, niezależnie od tego, czy ustawiono .Ev DISPLAY . .It Ev SSH_AUTH_SOCK Identyfikuje ścieżkę gniazda domeny Uniksa służącego do komunikacji z agentem. .It Ev SSH_CONNECTION Identyfikuje końcówki połączenia po stronie klienta i serwera. Zmienna zawiera cztery wartości rozdzielone spacją: adres IP klienta, numer portu klienta, adres IP serwera i numer portu serwera. .It Ev SSH_ORIGINAL_COMMAND Zmienna zawiera pierwotny wiersz polecenia, jeśli wykonywane jest wymuszone polecenie. Może posłużyć do wydobycia pierwotnych argumentów. .It Ev SSH_TTY Ustawiana na nazwę tty (ścieżka do urządzenia) powiązanego z bieżącą powłoką lub poleceniem. Jeśli bieżąca sesja nie posiada tty, zmienna ta nie jest ustawiana. .It Ev SSH_TUNNEL Opcjonalnie ustawiana przez .Xr sshd 8 ; zawiera przypisane nazwy interfejsów, jeśli klient zażądał przekierowania tunelem. .It Ev SSH_USER_AUTH Opcjonalnie ustawiana przez .Xr sshd 8 , zmienna ta może zawierać ścieżkę do pliku zawierającego listę pomyślnie dokonanych metod uwierzytelnia, które posłużyły do zestawienia sesji, w tym użytych kluczy publicznych. .It Ev TZ Zmienna ta służy do wskazania bieżącej strefy czasowej, jeśli była ustawiona przy uruchomieniu demona (tj. demon przekazał tę wartość nowym połączeniom). .It Ev USER Ustawiana na nazwę logującego się użytkownika. .El .Pp Dodatkowo .Nm ssh odczytuje plik .Pa ~/.ssh/environment i dodaje wiersze w postaci \[Bq]NAZWA-ZMIENNEJ=wartość\[rq] do środowiska, jeśli plik ten istnieje, a użytkownicy mogą zmieniać swoje środowisko. Więcej informacji w opisie opcji .Cm PermitUserEnvironment w podręczniku .Xr sshd_config 5 . .Sh PLIKI .Bl -tag -width Ds -compact .It Pa ~/.rhosts Plik używany przy uwierzytelnianiu na podstawie danej stacji (zob. wyżej). Na niektórych komputerach może być konieczne, aby plik ten był odczytywalny dla wszystkich, jeśli katalog domowy użytkownika jest na partycji NFS, ponieważ .Xr sshd 8 odczytuje go jako root. Dodatkowo plik ten musi być własnością użytkownika i nie może posiadać uprawnień do zapisu dla kogokolwiek innego. Zalecany zestaw uprawnień w większości konfiguracji to: odczyt/zapis dla użytkownika i brak dostępu dla pozostałych. .Pp .It Pa ~/.shosts Plik używany dokładnie w ten sam sposób jak .Pa .rhosts , lecz zezwala na uwierzytelnienie na podstawie danej stacji bez dozwolenia logowań za pomocą rlogin/rsh. .Pp .It Pa ~/.ssh/ Katalog jest domyślnym położeniem dla całej konfiguracji danego użytkownika oraz informacji uwierzytelniających. Nie ma ogólnego wymagania, aby zawartość całego katalogu była utrzymywana w tajemnicy, ale zaleca się uprawnienia do odczytu/zapisu/wykonania dla użytkownika i brak dostępu dla pozostałych. .Pp .It Pa ~/.ssh/authorized_keys Lista kluczy publicznych (ECDSA, Ed25519, RSA), które mogą służyć do logowania się jako dany użytkownik. Format tego pliku opisano w podręczniku .Xr sshd 8 . Plik ten nie jest zbyt wrażliwy, ale zaleca się uprawnienia do odczytu/zapisu dla użytkownika i brak dostępu dla pozostałych. .Pp .It Pa ~/.ssh/config Plik konfiguracyjny użytkownika. Format pliku i opcje konfiguracyjne opisano w podręczniku .Xr ssh_config 5 . Ze względu na możliwości nadużyć, plik musi posiadać ścisłe uprawnienia: odczyt/zapis przez użytkownika i brak zapisu przez pozostałych. .Pp .It Pa ~/.ssh/environment Dodatkowe definicje zmiennych środowiskowych: zob. .Sx ŚRODOWISKO , powyżej. .Pp .It Pa ~/.ssh/id_ecdsa .It Pa ~/.ssh/id_ecdsa_sk .It Pa ~/.ssh/id_ed25519 .It Pa ~/.ssh/id_ed25519_sk .It Pa ~/.ssh/id_rsa Zawierają prywatne klucze do uwierzytelniania. Pliki te zawierają wrażliwe dane i powinny być odczytywalne dla użytkownika ale niedostępne dla innych (brak uprawnienia do odczytu/zapisu/wykonania). .Nm ssh po prostu pominie klucz prywatny, który jest dostępny dla innych. Przy tworzeniu klucza prywatnego można ustawić frazę kodującą, która zostanie użyta do zaszyfrowania wrażliwych części tego pliku za pomocą AES-128. .Pp .It Pa ~/.ssh/id_ecdsa.pub .It Pa ~/.ssh/id_ecdsa_sk.pub .It Pa ~/.ssh/id_ed25519.pub .It Pa ~/.ssh/id_ed25519_sk.pub .It Pa ~/.ssh/id_rsa.pub Zawierają klucze publiczne do uwierzytelniania. Pliki te nie zawierają danych wrażliwych i mogą być (ale nie muszą) odczytywalne dla wszystkich. .Pp .It Pa ~/.ssh/known_hosts Zawiera listę kluczy stacji dla wszystkich stacji, do których użytkownik się logował, a nie występują w systemowej liście kluczy znanych stacji. Więcej informacji na temat formatu tego pliku opisano w podręczniku .Xr sshd 8 . .Pp .It Pa ~/.ssh/rc Polecenia w pliku są wykonywane przez .Nm ssh , gdy użytkownik się zaloguje, zaraz przed uruchomieniem powłoki użytkownika (lub polecenia). Więcej informacji w podręczniku .Xr sshd 8 . .Pp .It Pa /etc/hosts.equiv Plik służy do uwierzytelniania w oparciu o stację (zob. wyżej). Powinien być zapisywalny tylko przez roota. .Pp .It Pa /etc/ssh/shosts.equiv Plik używany dokładnie w ten sam sposób jak .Pa hosts.equiv , lecz zezwala na uwierzytelnienie na podstawie danej stacji bez dozwolenia logowań za pomocą rlogin/rsh. .Pp .It Pa /etc/ssh/ssh_config Systemowy plik konfiguracyjny. Format pliku i opcje konfiguracji opisano w podręczniku .Xr ssh_config 5 . .Pp .It Pa /etc/ssh/ssh_host_ecdsa_key .It Pa /etc/ssh/ssh_host_ed25519_key .It Pa /etc/ssh/ssh_host_rsa_key Pliki zawierają części prywatne kluczy stacji i służą do uwierzytelniania w oparciu o stację. .Pp .It Pa /etc/ssh/ssh_known_hosts Systemowa lista kluczy znanych stacji. Plik powinien być przygotowany przez administratora systemu w taki sposób, aby zawierał publiczne klucze stacji wszystkich komputerów w danej organizacji. Powinien być odczytywalny dla wszystkich. Więcej informacji o formacie tego pliku opisano w podręczniku .Xr sshd 8 . .Pp .It Pa /etc/ssh/sshrc Polecenia w pliku są wykonywane przez .Nm ssh , gdy użytkownik się zaloguje, zaraz przed uruchomieniem powłoki użytkownika (lub polecenia). Więcej informacji w podręczniku .Xr sshd 8 . .El .Sh STATUS ZAKOŃCZENIA .Nm ssh wychodzi ze statusem zakończenia zdalnego polecenia lub z 255, jeśli wystąpił błąd. .Sh ZOBACZ TAKŻE .Xr scp 1 , .Xr sftp 1 , .Xr ssh-add 1 , .Xr ssh-agent 1 , .Xr ssh-keygen 1 , .Xr ssh-keyscan 1 , .Xr tun 4 , .Xr ssh_config 5 , .Xr ssh-keysign 8 , .Xr sshd 8 .Sh STANDARDY .Rs .%A S. Lehtinen .%A C. Lonvick .%D styczeń 2006 .%R RFC 4250 .%T The Secure Shell (SSH) Protocol Assigned Numbers .Re .Pp .Rs .%A T. Ylonen .%A C. Lonvick .%D styczeń 2006 .%R RFC 4251 .%T The Secure Shell (SSH) Protocol Architecture .Re .Pp .Rs .%A T. Ylonen .%A C. Lonvick .%D styczeń 2006 .%R RFC 4252 .%T The Secure Shell (SSH) Authentication Protocol .Re .Pp .Rs .%A T. Ylonen .%A C. Lonvick .%D styczeń 2006 .%R RFC 4253 .%T The Secure Shell (SSH) Transport Layer Protocol .Re .Pp .Rs .%A T. Ylonen .%A C. Lonvick .%D styczeń 2006 .%R RFC 4254 .%T The Secure Shell (SSH) Connection Protocol .Re .Pp .Rs .%A J. Schlyter .%A W. Griffin .%D styczeń 2006 .%R RFC 4255 .%T Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints .Re .Pp .Rs .%A F. Cusack .%A M. Forssen .%D styczeń 2006 .%R RFC 4256 .%T Generic Message Exchange Authentication for the Secure Shell Protocol (SSH) .Re .Pp .Rs .%A J. Galbraith .%A P. Remaker .%D styczeń 2006 .%R RFC 4335 .%T The Secure Shell (SSH) Session Channel Break Extension .Re .Pp .Rs .%A M. Bellare .%A T. Kohno .%A C. Namprempre .%D styczeń 2006 .%R RFC 4344 .%T The Secure Shell (SSH) Transport Layer Encryption Modes .Re .Pp .Rs .%A B. Harris .%D styczeń 2006 .%R RFC 4345 .%T Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol .Re .Pp .Rs .%A M. Friedl .%A N. Provos .%A W. Simpson .%D marzec 2006 .%R RFC 4419 .%T Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol .Re .Pp .Rs .%A J. Galbraith .%A R. Thayer .%D listopad 2006 .%R RFC 4716 .%T The Secure Shell (SSH) Public Key File Format .Re .Pp .Rs .%A D. Stebila .%A J. Green .%D grudzień 2009 .%R RFC 5656 .%T Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer .Re .Pp .Rs .%A A. Perrig .%A D. Song .%D 1999 .%O International Workshop on Cryptographic Techniques and E-Commerce (CrypTEC '99) .%T Hash Visualization: a New Technique to improve Real-World Security .Re .Sh AUTORZY OpenSSH wywodzi się 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 usunęli wiele błędów, dodali na nowo nowsze funkcje i utworzyli OpenSSH. Markus Friedl miał udział w dodaniu obsługi protokołów SSH w wersji 1.5 i 2.0. .Pp .Sh TŁUMACZENIE Tłumaczenie niniejszej strony podręcznika: Michał Kułach . .Pp Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .Lk https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .Pp Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .Mt manpages-pl-list@lists.sourceforge.net .Me .