.\" -*- coding: UTF-8 -*-
.\"
.\" Author: Tatu Ylonen <ylo@cs.hut.fi>
.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, 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 GSSAPIKeyExchange
.It GSSAPIClientIdentity
.It GSSAPIDelegateCredentials
.It GSSAPIKexAlgorithms
.It GSSAPIRenewalForcesRekey
.It GSSAPIServerIdentity
.It GSSAPITrustDns
.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 kex-gss
(algorytmy wymiany klucza GSSAPI),
.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
(Konfiguracja w Debianie: przekierowania X11 nie podlegają domyślnie
ograniczeniom rozszerzenia X11 SECURITY, ponieważ obecnie zbyt wiele
programów załamuje się w tym trybie. Aby przywrócić domyślnie zachowanie
autorów programu, należy ustawić opcję
.Cm ForwardX11Trusted
na
\[Bq]no\[rq]. Może się to zmienić w przyszłości, w zależności od usprawnień
po stronie klienta).
.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
(Konfiguracja w Debianie: W domyślnej konfiguracji, opcja ta jest
odpowiednikiem
.Fl X ,
ponieważ
.Cm ForwardX11Trusted
domyślnie wynosi
\[Bq]yes\[rq], jak opisano powyżej. Aby przywrócić domyślnie zachowanie
autorów programu, należy ustawić opcję
.Cm ForwardX11Trusted
na
\[Bq]no\[rq]. Może się to zmienić w przyszłości, w zależności od usprawnień
po stronie klienta).
.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. Może być zapisywalny dla grupy zakładając, że
przedmiotowa grupa zawiera tylko samego użytkownika.
.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-argv0 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 <michal.kulach@gmail.com>
.
.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 .
