Provided by: manpages-pl_4.28.0-2_all 

NAZWA
ssh — klient zdalnego logowania OpenSSH
SKŁADNIA
ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B interfejs-przypisania] [-b adres-przypisania] [-c określenie-szyfru]
[-D [adres-przypisania:]port] [-E plik-dziennika] [-e znak-specjalny] [-F plik-konfiguracyjny] [-I
pkcs11] [-i plik-tożsamości] [-J położenie-docelowe] [-L adres] [-l nazwa-logowania] [-m określenie-mac]
[-O polecenie-npz] [-o opcja] [-P znacznik] [-p port] [-R adres] [-S ścieżka-npz] [-W stacja:port] [-w
lokalny-tun[:zdalny-tun]] położenie-docelowe [polecenie [argument ...]] ssh [-Q opcja-odpytania]
OPIS
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.
ssh łączy się i loguje do podanego położenia-docelowego, które można podać określić jako
[użytkownik@]nazwa-stacji lub jako URI w postaci ssh://[użytkownik@]nazwa-stacji[:port]. Użytkownik musi
potwierdzić swoją tożsamość wobec zdalnego komputera jedną z wielu metod.
Jeśli poda się polecenie, zostanie ono wykonane na zdalnym komputerze zamiast powłoki logowania. Jako
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.
Dostępne są następujące opcje:
-4 Wymusza na ssh używanie tylko adresów IPv4.
-6 Wymusza na ssh używanie tylko adresów IPv6.
-A Włącza przekierowywanie połączeń z agenta uwierzytelniania, takiego jak ssh-agent(1). Można je
określić również w zależności od stacji, w pliku konfiguracyjnym.
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. -J).
-a Wyłącza przekierowywanie połączeń z agenta uwierzytelniania.
-B interfejs-przypisania
Przypisuje do adresu interfejsu-przypisania przed podjęciem próby połączenia ze zdalnym
komputerem. Przydatne tylko w systemach o kilku adresach.
-b adres-przypisania
Używa adresu-przypisania na lokalnym komputerze jako adresu źródłowego połączenia. Przydatne
tylko w systemach o kilku adresach.
-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 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ę Compression w ssh_config(5).
-c określenie-szyfru
Wybiera szyfr używany do zabezpieczenia sesji. określenie-szyfru jest listą szyfrów, w
kolejności według preferencji, z przecinkiem jako separatorem. Zob. słowo kluczowe Ciphers w
ssh_config(5), aby dowiedzieć się więcej.
-D [adres-przypisania:]port
Określa lokalne „dynamiczne” przekierowanie portów na poziomie aplikacji. Działa to na zasadzie
przydzielenia gniazda do nasłuchu na porcie po stronie lokalnej, opcjonalnie przypisanego do
określonego 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 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.
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
GatewayPorts. Można jednak podać adres-przypisania, aby przypisać połączenie do określonego
adresu. Adres-przypisania z wartością „localhost” oznacza, że port nasłuchu jest przypisany
wyłącznie do użytku lokalnego, a pusty adres lub „*” wskazuje, że port ma być dostępny ze
wszystkich interfejsów.
-E plik-dziennika
Dopisuje dzienniki debugowania do pliku-dziennika, zamiast na standardowe wyjście błędów.
-e znak-specjalny
Ustawia znak specjalny do sesji z pty (domyślnie: „~”). Znak specjalny jest rozpoznawany tylko na
początku wiersza. Znak specjalny, po którym nastąpi: kropka „.” – zamyka połączenie, control-Z –
zawiesza połączenie, kolejny znak specjalny – wysyła pojedynczy znak specjalny. Ustawienie tego
znaku na „none” wyłącza znaki specjalne i czyni sesję w pełni transparentną.
-F plik-konfiguracyjny
Określa alternatywny plik konfiguracyjny użytkownika. Jeśli poda się plik konfiguracyjny w
wierszu polecenia, systemowy plik konfiguracyjny (/etc/ssh/ssh_config) zostanie zignorowany.
Domyślnym plikiem konfiguracyjnym użytkownika jest ~/.ssh/config. Argument „none” wyłączy odczyt
wszelkich plików konfiguracyjnych.
-f Żąda przejścia ssh w tło, zaraz przed wykonaniem polecenia. Przydatne, gdy ssh będzie pytał o
hasła lub frazy kodujące, lecz użytkownik chce dokonać tego w tle. Wymusza -n. Zalecanym
sposobem uruchamiania programów X11 po stronie zdalnej jest coś w stylu ssh -f stacja xterm.
Jeśli opcja konfiguracyjna ExitOnForwardFailure zostanie ustawiona na „yes”, to klient
uruchomiony z opcją -f poczeka na poprawne zestawienie wszelkich zdalnych przekierowań portów,
przed przejściem w tło. Szczegóły wskazano w opisie ForkAfterAuthentication w podręczniku
ssh_config(5).
-G Powoduje, że ssh wypisze swoją konfigurację po przeanalizowaniu bloków Host oraz Match, a potem
wyjdzie.
-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.
-I pkcs11
Określa bibliotekę współdzieloną PKCS#11, którą ssh powinien używać do komunikacji z tokenem
PKCS#11, zapewniającym klucze do uwierzytelnienia użytkownika.
-i 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ą ssh-agent(1) w sytuacji, gdy plik klucza prywatnego nie jest
dostępny lokalnie. Wartość domyślna obejmuje: ~/.ssh/id_rsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ecdsa_sk,
~/.ssh/id_ed25519 i ~/.ssh/id_ed25519_sk. Pliki tożsamości można również określić wobec
konkretnej stacji w pliku konfiguracyjnym. Można podać opcję -i wielokrotnie (i określić wiele
tożsamości w plikach konfiguracyjnych). Jeśli nie podano jawnie certyfikatu dyrektywą
CertificateFile, ssh spróbuje także załadować informacje o certyfikacie, z pliku o nazwie
powstałej przez dołączenie cząstki -cert.pub, do nazwy pliku tożsamości.
-J położenie-docelowe
Łączy się ze stacją docelową, tworząc wcześniej połączenie ssh ze stacją pośredniczącą opisaną w
argumencie 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 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
~/.ssh/config pozwoli określić konfigurację dla stacji pośredniczących.
-K Włącza uwierzytelnianie w oparciu o GSSAPI oraz przekierowanie (delegację) poświadczeń GSSAPI na
serwer.
-k Wyłącza przekierowanie (delegację) poświadczeń GSSAPI na serwer.
-L [adres-powiązania:]port:stacja:port-stacji
-L [adres-powiązania:]port:zdalne-gniazdo
-L lokalne-gniazdo:stacja:port-stacji
-L lokalne-gniazdo:zdalne-gniazdo
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 porcie TCP po stronie lokalnej, opcjonalnie
powiązanego z podanym 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 port-stacji na stacji albo do gniazda Uniksa zdalne-gniazdo na stacji zdalnej.
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.
Domyślnie, porty lokalne są przypisywane zgodnie z ustawieniem GatewayPorts. Jednak można podać
adres-przypisania aby przypisać połączenie do określonego adresu. Adres-przypisania z wartością
„localhost” oznacza, że port nasłuchu jest przypisany wyłącznie do użytku lokalnego, a pusty
adres lub „*” wskazuje, że port ma być dostępny ze wszystkich interfejsów.
-l 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.
-M Umieszcza klienta ssh w trybie „nadrzędnym” przy dzieleniu połączenia. Wielokrotna opcja -M
umieszcza ssh w trybie „nadrzędnym”, jednak wymagane jest potwierdzenie za pomocą ssh-askpass(1),
przed każdą operacją zmieniającą stan zwielokrotnienia (np. otwarcie nowej sesji). Więcej
szczegółów w opisie ControlMaster w podręczniku ssh_config(5).
-m 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 MACs w podręczniku ssh_config(5).
-N Nie wykonuje zdalnego polecenia. Przydatne, jeśli oczekiwane jest jedynie przekierowanie portów.
Więcej informacji w opisie SessionType w podręczniku ssh_config(5).
-n Przekierowuje standardowe wejście z /dev/null (czyli zapobiega odczytowi ze standardowego
wejścia). Konieczne, gdy 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 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 ssh zostanie umieszczony w tle (nie zadziała to, gdy
ssh musi zapytać o hasło lub frazę kodującą, zob. też opcję -f). Więcej szczegółów w opisie
StdinNull w podręczniku ssh_config(5).
-O polecenie-npz
Steruje nadrzędnym procesem zwielokrotniania aktywnego połączenia. Gdy poda się opcję -O,
argument ctl_cmd jest interpretowany i przekazywany procesowi nadrzędnemu. Prawidłowe polecenia
to: „check” (sprawdza, czy proces nadrzędny działa), „forward” (żąda przekierowania bez
wykonywania polecenia), „cancel” (odwołuje przekierowania), „proxy” (łączy się z nadrzędnym
procesem zwielokrotniania w trybie pośredniczenia), „exit” (żąda wyjścia procesu nadrzędnego)
oraz „stop” (żąda zatrzymywania przyjmowania kolejnych żądań zwielokrotniania przez proces
nadrzędny).
-o 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 ssh_config(5).
AddKeysToAgent
AddressFamily
BatchMode
BindAddress
BindInterface
CASignatureAlgorithms
CanonicalDomains
CanonicalizeFallbackLocal
CanonicalizeHostname
CanonicalizeMaxDots
CanonicalizePermittedCNAMEs
CertificateFile
ChannelTimeout
CheckHostIP
Ciphers
ClearAllForwardings
Compression
ConnectTimeout
ConnectionAttempts
ControlMaster
ControlPath
ControlPersist
DynamicForward
EnableEscapeCommandline
EnableSSHKeysign
EscapeChar
ExitOnForwardFailure
FingerprintHash
ForkAfterAuthentication
ForwardAgent
ForwardX11
ForwardX11Timeout
ForwardX11Trusted
GSSAPIAuthentication
GSSAPIKeyExchange
GSSAPIClientIdentity
GSSAPIDelegateCredentials
GSSAPIKexAlgorithms
GSSAPIRenewalForcesRekey
GSSAPIServerIdentity
GSSAPITrustDns
GatewayPorts
GlobalKnownHostsFile
HashKnownHosts
Host
HostKeyAlgorithms
HostKeyAlias
HostbasedAcceptedAlgorithms
HostbasedAuthentication
Hostname
IPQoS
IdentitiesOnly
IdentityAgent
IdentityFile
IgnoreUnknown
Include
KbdInteractiveAuthentication
KbdInteractiveDevices
KexAlgorithms
KnownHostsCommand
LocalCommand
LocalForward
LogLevel
LogVerbose
MACs
NoHostAuthenticationForLocalhost
NumberOfPasswordPrompts
ObscureKeystrokeTiming
PKCS11Provider
PasswordAuthentication
PermitLocalCommand
PermitRemoteOpen
Port
PreferredAuthentications
ProxyCommand
ProxyJump
ProxyUseFdpass
PubkeyAcceptedAlgorithms
PubkeyAuthentication
RekeyLimit
RemoteCommand
RemoteForward
RequestTTY
RequiredRSASize
RevokedHostKeys
SecurityKeyProvider
SendEnv
ServerAliveCountMax
ServerAliveInterval
SessionType
SetEnv
StdinNull
StreamLocalBindMask
StreamLocalBindUnlink
StrictHostKeyChecking
SyslogFacility
TCPKeepAlive
Tag
Tunnel
TunnelDevice
UpdateHostKeys
User
UserKnownHostsFile
VerifyHostKeyDNS
VisualHostKey
XAuthLocation
-P znacznik
Podaje znacznik, który może posłużyć do wyboru określonej konfiguracji z pliku ssh_config(5).
Więcej informacji w opisie słów kluczowych Tag i Match w podręczniku ssh_config(5).
-p 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.
-Q opcja-odpytania
Odpytuje o algorytmy obsługujące jedną z poniższych funkcji: cipher (obsługa szyfrów
symetrycznych), cipher-auth (obsługa szyfrów symetrycznych obsługujących szyfrowanie z
uwierzytelnieniem), help (obsługa zapytań do użycia z opcją -Q), mac (obsługa kodów integralności
komunikatów), kex (algorytmy wymiany klucza), kex-gss (algorytmy wymiany klucza GSSAPI), key
(typy kluczy), key-ca-sign (prawidłowe algorytmy podpisów ośrodków certyfikacji dla
certyfikatów), key-cert (typy kluczy certyfikatów), key-plain (typy kluczy niebędących
certyfikatami), key-sig (wszystkie typy kluczy i algorytmy podpisów), protocol-version
(obsługiwane wersje protokołu SSH) i sig (obsługiwane algorytmy podpisów). Alternatywnie, dowolne
słowo kluczowe z ssh_config(5) lub sshd_config(5) przyjmujące listę algorytmów może posłużyć jako
alias odpowiadającej opcji-odpytania.
-q Tryb cichy. Wyłącza większość ostrzeżeń i komunikatów diagnostycznych.
-R [adres-powiązania:]port:stacja:port-stacji
-R [adres-przypisania:]port:lokalne-gniazdo
-R zdalne-gniazdo:stacja:port-stacji
-R zdalne-gniazdo:lokalne-gniazdo
-R [adres-przypisania:]port
Określa, że połączenia z danym portem TCP lub gniazdem Uniksa na zdalnej stacji (serwerze) mają
być przekierowywane na stronę lokalną.
Działa to, poprzez przydzielenia gniazda do nasłuchu albo 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 stacji port-stacji lub do
lokalnego-gniazda, albo, jeśli nie podano jawnie lokalizacji, 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.
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.
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 adres-powiązania. Pusty adres-powiązania lub adres o
wartości „*” wskazuje, że gniazdo zdalne ma nasłuchiwać na wszystkich interfejsach. Podanie
zdalnego adresu-powiązania powiedzie się tylko, jeśli na serwerze włączono opcję GatewayPorts
(zob. sshd_config(5)).
Jeśli argumentem port będzie „0”, to nasłuchujący port zostanie dynamicznie przydzielony na
serwerze i zgłoszony klientowi w momencie uruchomienia. Przy użyciu razem z opcją -O forward,
przydzielony port zostanie wypisany na standardowe wyjście.
-S ścieżka-npz
Określa położenie gniazda sterującego dzieleniem połączenia; łańcuch „none” wyłączy dzielenie
połączenia. Więcej szczegółów w opisie ControlPath i ControlMaster w podręczniku ssh_config(5).
-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. sftp(1)). Podsystem jest określony
jako polecenie zdalne. Więcej szczegółów w opisie SessionType w podręczniku ssh_config(5).
-T Wyłącza przydzielenie pseudoterminala.
-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 -t wymusi przydzielenie tty, nawet, gdy ssh nie ma lokalnego tty.
-V Wyświetla numer wersji i wychodzi.
-v Tryb szczegółowy. Powoduje, że ssh wypisuje szczegółowe komunikaty informujące o postępach
programu. Przydatne do rozwiązywania problemów z połączeniem, uwierzytelnieniem i konfiguracją.
Opcja -v podana wielokrotnie zwiększa szczegółowość. Jej maksymalny poziom to 3.
-W stacja:port
Żąda, aby standardowe wejście i standardowe wyjście na kliencie były przekierowywane do stacji i
portu poprzez bezpieczny kanał. Wymusza -N, -T, ExitOnForwardFailure i ClearAllForwardings, choć
można je przesłonić w pliku konfiguracyjnym lub za pomocą opcji -o wiersza poleceń.
-w lokalny-tun[:zdalny-tun]
Żąda przekierowanie urządzenia tunelu za pomocą podanych urządzeń tun(4) pomiędzy klienckim
(lokalnym-tun) i (zdalnym-tun) po stronie serwera.
Urządzenia te można określić numerycznym identyfikatorem lub słowem kluczowym „any”, które użyje
następnego dostępnego urządzenia tunelu. Jeśli nie poda się zdalnego-tun, przyjmie on wartość
domyślną „any”. Zob. też dyrektywy Tunnel i TunnelDevice w podręczniku ssh_config(5).
Jeśli dyrektywa Tunnel jest nieustawiona, będzie ustawiona na domyślny tryb tunelowania, którym
jest „point-to-point”. Jeśli oczekiwany jest inny tryb przekierowania Tunnel, trzeba go określić
przed podaniem opcji -w.
-X Włącza przekierowanie X11. Można to również określić w zależności od stacji, w pliku
konfiguracyjnym.
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.
Z tego względu, przekierowanie X11 podlega domyślnie ograniczeniom wynikającym z rozszerzenia X11
SECURITY. Więcej szczegółów przy opcji -Y ssh i dyrektywie ForwardX11Trusted w podręczniku
ssh_config(5).
(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ę ForwardX11Trusted na „no”. Może się
to zmienić w przyszłości, w zależności od usprawnień po stronie klienta).
-x Wyłącza przekierowanie X11.
-Y Włącza zaufane przekierowanie X11. Zaufane przekierowania X11 nie podlegają regulacjom
rozszerzenia X11 SECURITY.
(Konfiguracja w Debianie: W domyślnej konfiguracji, opcja ta jest odpowiednikiem -X, ponieważ
ForwardX11Trusted domyślnie wynosi „yes”, jak opisano powyżej. Aby przywrócić domyślnie
zachowanie autorów programu, należy ustawić opcję ForwardX11Trusted na „no”. Może się to zmienić
w przyszłości, w zależności od usprawnień po stronie klienta).
-y Wysyła informacje dziennika do modułu systemowego syslog(3). Domyślnie informacje te są
wypisywane na standardowe wyjście błędów.
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 ssh_config(5).
UWIERZYTELNIANIE
Klient SSH OpenSSH obsługuje protokół SSH 2.
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ą PreferredAuthentications.
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 /etc/hosts.equiv lub /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 ~/.rhosts lub ~/.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 musi być w stanie zweryfikować klucz stacji klienckiej
(zob. opis /etc/ssh/ssh_known_hosts i ~/.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: /etc/hosts.equiv, ~/.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.]
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. ssh automatycznie implementuje protokoły uwierzytelniania kluczem
publicznym, za pomocą jednego z algorytmów: ECDSA, Ed25519 lub RSA.
Plik ~/.ssh/authorized_keys zawiera listę kluczy publicznych, którymi można się zalogować. Gdy użytkownik
się zaloguje, 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.
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 LogLevel na DEBUG lub wyższy (np. opcją -v).
Użytkownik tworzy swoją parę kluczy poleceniem ssh-keygen(1). Klucz prywatny zostanie umieszczony w
pliku ~/.ssh/id_ecdsa (ECDSA), ~/.ssh/id_ecdsa_sk (ECDSA po stronie uwierzytelniającego się),
~/.ssh/id_ed25519 (Ed25519), ~/.ssh/id_ed25519_sk (Ed25519 po stronie uwierzytelniającego się) lub
~/.ssh/id_rsa (RSA), a klucz publiczny w pliku ~/.ssh/id_ecdsa.pub (ECDSA), ~/.ssh/id_ecdsa_sk.pub (ECDSA
po stronie uwierzytelniającego się), ~/.ssh/id_ed25519.pub (Ed25519), ~/.ssh/id_ed25519_sk.pub (Ed25519
po stronie uwierzytelniającego się) lub ~/.ssh/id_rsa.pub (RSA) w katalogu domowym użytkownika.
Użytkownik powinien następnie skopiować klucz publiczny do pliku ~/.ssh/authorized_keys w swoim katalogu
domowym na zdalnym komputerze. Plik authorized_keys odpowiada tradycyjnemu plikowi ~/.rhosts i posiada po
jednym kluczu na wiersz, choć wiersze te mogą być bardzo długie. Po dokonaniu opisanych czynności,
użytkownik może zalogować się bez podawania hasła.
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 ssh-keygen(1).
Najwygodniejszym sposobem korzystania z kluczy publicznych może być agent uwierzytelniania. Więcej
informacji w podręczniku ssh-agent(1) i (opcjonalnie) w opisie dyrektywy AddKeysToAgent w ssh_config(5).
Uwierzytelnianie wymagające wpisania znaków z klawiatury działa następująco: Serwer wysyła arbitralny
łańcuch „wyzwanie” i czeka na odpowiedź, być może powtarzając to wielokrotnie. Przykłady tego typu
uwierzytelniania obejmują Uwierzytelniania BSD (zob. login.conf(5)) oraz PAM (część systemów innych niż
Ox).
Ostatecznie, jeśli inne metody zawiodą, 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.
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 ~/.ssh/known_hosts, w katalogu domowym
użytkownika. Dodatkowo, sprawdzany jest automatycznie plik /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, 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ą
StrictHostKeyChecking można ograniczyć logowanie się do komputerów, których klucz stacji nie jest znany
lub zmienił się.
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.
Jeśli zażądano sesji interaktywnej, 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 -T i -t.
Jeśli przydzielono pseudoterminal, użytkownik może korzystać ze znaków specjalnych opisanych niżej.
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 „none” również uczyni
sesję transparentną nawet, gdy korzysta się z tty.
Sesja kończy się, gdy polecenie lub powłoka na komputerze zdalnym wyjdzie i wszystkie połączenia X11 i
TCP zostaną zamknięte.
ZNAKI SPECJALNE
Gdy zażądano pseudoterminala, ssh obsługuje wiele funkcji za pomocą znaku specjalnego.
Pojedynczy znak tyldy można wysłać wpisując „~~” 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 EscapeChar lub w wierszu polecenia, opcją -e.
Obsługiwane sekwencje specjalne (zakładając domyślny znak specjalny „~”) to:
~. Rozłącza się.
~^Z ssh przechodzi w tło.
~# Wypisuje przekierowane połączenia.
~& ssh przechodzi w tło przy wylogowaniu, podczas oczekiwania na zakończenie przekierowanego
połączenia lub sesji X11.
~? Wyświetla listę znaków specjalnych.
~B Wysyła BREAK do zdalnego systemu (przydatne tylko, jeśli ten umie go obsłużyć).
~C Otwiera wiersz polecenia. Obecnie pozwala to na uzupełnienie przekierowania portów za pomocą
opcji -L, -R i -D (zob. wyżej). Pozwala również na odwołanie istniejących przekierowań portów za
pomocą -KL[adres-przypisania:]port po stronie lokalnej, -KR[adres-przypisania:]port po stronie
zdalnej oraz -KD[adres-przypisania:]port w przypadku dynamicznego przekierowania portów.
!polecenie pozwala użytkownikowi na wykonanie polecenia lokalnego, jeśli włączona jest opcja
PermitLocalCommand w pliku ssh_config(5). Skrócona pomoc jest dostępna za pomocą opcji -h.
~R Żąda odnowienia kluczy połączenia (przydatne tylko, jeśli zdalna stacja to obsługuje).
~V Zmniejsza szczegółowość (LogLevel), gdy błędy są wypisywane na standardowe wyjście błędów.
~v Zwiększa szczegółowość (LogLevel), gdy błędy są wypisywane na standardowe wyjście błędów.
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 – omijanie zapór sieciowych.
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ą ssh, podając porty, jakie mają posłużyć do
przekierowania połączenia. Następnie można uruchomić program lokalnie, a ssh zaszyfruje i przekieruje
połączenie do zdalnego serwera.
Poniższy przykład tuneluje sesję IRC z klienta do serwera IRC pod adresem „server.example.com”, dołącza
do kanału „#users” z ksywką „pinky”, korzystając ze standardowego portu IRC, 6667:
$ ssh -f -L 6667:localhost:6667 server.example.com sleep 10
$ irc -c '#users' pinky IRC/127.0.0.1
Opcja -f umieszcza ssh w tle, a polecenie zdalne „sleep 10” 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, ssh wyjdzie.
PRZEKIEROWANIE X11
Jeśli zmienna ForwardX11 jest ustawiona na „yes” (albo zob. opis opcji -X, -x i -Y powyżej), a użytkownik
korzysta z X11 (ustawiona jest zmienna środowiskowa 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ć DISPLAY. Przekierowywanie połączeń X11
można skonfigurować w wierszu polecenia lub w plikach konfiguracyjnych.
Wartość zmiennej DISPLAY ustawiona przez ssh będzie wskazywać na serwer, lecz z numerem ekranu większym
niż zero. Jest to normalne zachowanie i ma miejsce, ponieważ ssh tworzy serwer „pośredniczący” X na
serwerze, w celu przekierowania połączeń przez szyfrowany kanał.
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).
Jeśli zmienna ForwardAgent jest ustawiona na „yes” (lub zob. opis opcji -A i -a powyżej), a użytkownik
korzysta z agenta uwierzytelniania, to połączenie z agentem jest automatycznie przekierowywane na stronę
zdalną.
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ę StrictHostKeyChecking). Odciski palców można określić za
pomocą ssh-keygen(1):
$ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
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 -E programu ssh-keygen(1) może
posłużyć do obniżenia poziomu algorytmu dopasowującego.
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ą grafiki losowej.
Ustawiając opcję VisualHostKey na „yes”, 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.
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.
$ ssh-keygen -lv -f ~/.ssh/known_hosts
Jeśli odcisk palca jest nieznany, dostępna jest alternatywna metoda uwierzytelniania: odciski SSH
zweryfikowane za pomocą SSH. Dodatkowy rekord zasobu (ang. resource record – RR), SSHFP, jest dodawany do
pliku strefy, a łączący się klient może dopasować odcisk palca do odcisku prezentowanego klucza.
W tym przykładzie, następuje połączenie klienta do serwera „host.example.com”. Rekordy zasobu SSHFP
powinno się najpierw dodać do pliku strefy dla host.example.com:
$ ssh-keygen -r host.example.com.
Wiersze wyjściowe zostaną dodane do pliku strefy. Aby sprawdzić, że strefa odpowiada na zapytania o
odciski palców:
$ dig -t SSHFP host.example.com
I w końcu następuje połączenie klienta:
$ ssh -o "VerifyHostKeyDNS ask" host.example.com
[...]
Matching host key fingerprint found in DNS.
Are you sure you want to continue connecting (yes/no)?
Więcej informacji przy opcji VerifyHostKeyDNS w podręczniku ssh_config(5).
WIRTUALNE SIECI PRYWATNE (VPN) WYKORZYSTUJĄCE SSH
ssh obsługuje tunelowanie wirtualnych sieci prywatnych (ang. Virtual Private Network – VPN) za pomocą
pseudourządzenia sieciowego tun(4), pozwalając na bezpieczne złączenie dwóch sieci. Opcja konfiguracyjna
PermitTunnel w sshd_config(5) kontroluje, czy serwer to obsługuje i na jakim poziomie (2. lub 3. warstwa
transportowa).
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.
Po stronie klienta:
# ssh -f -w 0:1 192.168.1.15 true
# ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252
# route add 10.0.99.0/24 10.1.1.2
Po stronie serwera:
# ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252
# route add 10.0.50.0/24 10.1.1.1
Dostęp klienta można dokładnie skonfigurować za pomocą pliku /root/.ssh/authorized_keys (zob. niżej) i
opcji serwera PermitRootLogin. Poniższy wpis zezwoliłby na połączenia na 1. urządzeniu tun(4) od
użytkownika „jane”, a na 2. urządzeniu tun od użytkownika „john”, jeśli PermitRootLogin jest ustawione na
„forced-commands-only”:
tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane
tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... john
Konfiguracja 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 ipsecctl(8) i isakmpd(8).
ŚRODOWISKO
ssh zwykle ustawi następujące zmienne środowiskowe:
DISPLAY Zmienna DISPLAY wskazuje położenie serwera X11. Jest automatycznie ustawiana przez
ssh, aby wskazywać na wartość w postaci „nazwa-stacji:n”, gdzie „nazwa-stacji”
oznacza stację, na której działa powłoka, a „n” jest liczbą całkowitą ≥ 1. ssh
używa tej wartości specjalnej do przekierowania połączeń X11 bezpiecznym kanałem.
Użytkownicy zwykle nie powinni sami ustawiać zmiennej DISPLAY, ponieważ uczyniłoby
to połączenie X11 niezabezpieczonym (i wymagałoby ręcznego kopiowania wymaganych
ciasteczek autoryzujących).
HOME Ustawiana na ścieżkę katalogu domowego użytkownika.
LOGNAME Równoważne USER; ustawiana ze względu na kompatybilność z systemami korzystającymi
z tej zmiennej.
MAIL Ustawiana na ścieżkę skrzynki pocztowej użytkownika.
PATH Ustawiana na domyślną PATH, jak określono przy kompilacji .
SSH_ASKPASS Jeśli ssh wymaga frazy kodującej, odczyta frazę kodującą z bieżącego terminala,
jeśli program uruchomiono z terminala. Jeśli ssh nie ma powiązanego terminala, lecz
ustawiono zmienne DISPLAY i SSH_ASKPASS, wykonany zostanie program określony
zmienną SSH_ASKPASS i otwarte będzie okno X11 służące do odczytu frazy kodującej.
Przydatne szczególnie przy wywołaniu ssh z .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 /dev/null).
SSH_ASKPASS_REQUIRE Pozwala na dokładniejszą kontrolę nad programem askpass. Jeśli zmienną ustawiono na
„never”, to ssh nigdy nie będzie go używał. Jeśli ustawi się ją na „prefer”, to
przy odpytywaniu o hasła ssh będzie preferował korzystanie z programu askpass
zamiast TTY. Jeśli natomiast zmienną ustawi się na „force”], to program askpass
będzie używany do wszelkiego wprowadzania fraz kodujących, niezależnie od tego, czy
ustawiono DISPLAY.
SSH_AUTH_SOCK Identyfikuje ścieżkę gniazda domeny Uniksa służącego do komunikacji z agentem.
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.
SSH_ORIGINAL_COMMAND Zmienna zawiera pierwotny wiersz polecenia, jeśli wykonywane jest wymuszone
polecenie. Może posłużyć do wydobycia pierwotnych argumentów.
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.
SSH_TUNNEL Opcjonalnie ustawiana przez sshd(8); zawiera przypisane nazwy interfejsów, jeśli
klient zażądał przekierowania tunelem.
SSH_USER_AUTH Opcjonalnie ustawiana przez 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.
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).
USER Ustawiana na nazwę logującego się użytkownika.
Dodatkowo ssh odczytuje plik ~/.ssh/environment i dodaje wiersze w postaci „NAZWA-ZMIENNEJ=wartość” do
środowiska, jeśli plik ten istnieje, a użytkownicy mogą zmieniać swoje środowisko. Więcej informacji w
opisie opcji PermitUserEnvironment w podręczniku sshd_config(5).
PLIKI
~/.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ż 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.
~/.shosts
Plik używany dokładnie w ten sam sposób jak .rhosts, lecz zezwala na uwierzytelnienie na
podstawie danej stacji bez dozwolenia logowań za pomocą rlogin/rsh.
~/.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.
~/.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 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.
~/.ssh/config
Plik konfiguracyjny użytkownika. Format pliku i opcje konfiguracyjne opisano w podręczniku
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.
~/.ssh/environment
Dodatkowe definicje zmiennych środowiskowych: zob. “ŚRODOWISKO”, powyżej.
~/.ssh/id_ecdsa
~/.ssh/id_ecdsa_sk
~/.ssh/id_ed25519
~/.ssh/id_ed25519_sk
~/.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). 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.
~/.ssh/id_ecdsa.pub
~/.ssh/id_ecdsa_sk.pub
~/.ssh/id_ed25519.pub
~/.ssh/id_ed25519_sk.pub
~/.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.
~/.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 sshd(8).
~/.ssh/rc
Polecenia w pliku są wykonywane przez ssh, gdy użytkownik się zaloguje, zaraz przed uruchomieniem
powłoki użytkownika (lub polecenia). Więcej informacji w podręczniku sshd(8).
/etc/hosts.equiv
Plik służy do uwierzytelniania w oparciu o stację (zob. wyżej). Powinien być zapisywalny tylko
przez roota.
/etc/ssh/shosts.equiv
Plik używany dokładnie w ten sam sposób jak hosts.equiv, lecz zezwala na uwierzytelnienie na
podstawie danej stacji bez dozwolenia logowań za pomocą rlogin/rsh.
/etc/ssh/ssh_config
Systemowy plik konfiguracyjny. Format pliku i opcje konfiguracji opisano w podręczniku
ssh_config(5).
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_rsa_key
Pliki zawierają części prywatne kluczy stacji i służą do uwierzytelniania w oparciu o stację.
/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 sshd(8).
/etc/ssh/sshrc
Polecenia w pliku są wykonywane przez ssh, gdy użytkownik się zaloguje, zaraz przed uruchomieniem
powłoki użytkownika (lub polecenia). Więcej informacji w podręczniku sshd(8).
STATUS ZAKOŃCZENIA
ssh wychodzi ze statusem zakończenia zdalnego polecenia lub z 255, jeśli wystąpił błąd.
ZOBACZ TAKŻE
scp(1), sftp(1), ssh-add(1), ssh-agent(1), ssh-argv0(1), ssh-keygen(1), ssh-keyscan(1), tun(4),
ssh_config(5), ssh-keysign(8), sshd(8)
STANDARDY
S. Lehtinen and C. Lonvick, The Secure Shell (SSH) Protocol Assigned Numbers, RFC 4250, styczeń 2006.
T. Ylonen and C. Lonvick, The Secure Shell (SSH) Protocol Architecture, RFC 4251, styczeń 2006.
T. Ylonen and C. Lonvick, The Secure Shell (SSH) Authentication Protocol, RFC 4252, styczeń 2006.
T. Ylonen and C. Lonvick, The Secure Shell (SSH) Transport Layer Protocol, RFC 4253, styczeń 2006.
T. Ylonen and C. Lonvick, The Secure Shell (SSH) Connection Protocol, RFC 4254, styczeń 2006.
J. Schlyter and W. Griffin, Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints, RFC 4255,
styczeń 2006.
F. Cusack and M. Forssen, Generic Message Exchange Authentication for the Secure Shell Protocol (SSH),
RFC 4256, styczeń 2006.
J. Galbraith and P. Remaker, The Secure Shell (SSH) Session Channel Break Extension, RFC 4335, styczeń
2006.
M. Bellare, T. Kohno, and C. Namprempre, The Secure Shell (SSH) Transport Layer Encryption Modes, RFC
4344, styczeń 2006.
B. Harris, Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol, RFC 4345, styczeń
2006.
M. Friedl, N. Provos, and W. Simpson, Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport
Layer Protocol, RFC 4419, marzec 2006.
J. Galbraith and R. Thayer, The Secure Shell (SSH) Public Key File Format, RFC 4716, listopad 2006.
D. Stebila and J. Green, Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer, RFC
5656, grudzień 2009.
A. Perrig and D. Song, Hash Visualization: a New Technique to improve Real-World Security, 1999,
International Workshop on Cryptographic Techniques and E-Commerce (CrypTEC '99).
AUTORZY
OpenSSH wywodzi 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.
TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z GNU General Public License w wersji 3: https://www.gnu.org/licenses/gpl-3.0.html lub
nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej
manpages-pl-list@lists.sourceforge.net .
Debian December 4, 2024 SSH(1)