To jest polecenie ssh, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS
PROGRAM:
IMIĘ
ssh — Klient OpenSSH SSH (program do zdalnego logowania)
STRESZCZENIE
ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b adres_powiązania] [-c specyfikacja_szyfru] [-D [adres_powiązania:]Port]
[-E plik dziennika] [-e znak ucieczki] [-F plik konfiguracyjny] [-I PKCS11] [-i plik_tożsamości]
[-L adres] [-l Nazwa użytkownika] [-m mac_spec] [-O ctl_cmd] [-o opcja] [-p Port]
[-Q zapytanie_opcja] [-R adres] [-S ścieżka_ctl] [-W gospodarz:Port] [-w lokalny_tun[:zdalny_tun]]
[użytkownik@]hosta [komenda]
OPIS
ssh (klient SSH) to program do logowania się do zdalnej maszyny i wykonywania poleceń
na zdalnym komputerze. Ma na celu zapewnienie bezpiecznej, zaszyfrowanej komunikacji między dwoma
niezaufane hosty w niezabezpieczonej sieci. Połączenia X11, dowolne porty TCP i
Gniazda domeny UNIX mogą być również przekazywane przez bezpieczny kanał.
ssh łączy się i loguje do określonego hosta (z opcjonalnym użytkownik Nazwa). Użytkownik musi
udowodnić swoją tożsamość zdalnej maszynie za pomocą jednej z kilku metod (patrz poniżej).
If komenda jest określony, jest wykonywany na zdalnym hoście zamiast w powłoce logowania.
Opcje są następujące:
-1 Siły ssh aby wypróbować protokół tylko w wersji 1.
-2 Siły ssh aby wypróbować protokół tylko w wersji 2.
-4 Siły ssh używać tylko adresów IPv4.
-6 Siły ssh używać tylko adresów IPv6.
-A Włącza przekazywanie połączenia agenta uwierzytelniania. Może to być również
określone dla poszczególnych hostów w pliku konfiguracyjnym.
Przekazywanie agentów należy włączać ostrożnie. Użytkownicy z możliwością obejścia
uprawnienia do plików na zdalnym hoście (dla gniazda domeny UNIX agenta) mogą uzyskać dostęp
agenta lokalnego za pośrednictwem połączenia przekazywanego. Atakujący nie może uzyskać klucza
materiał od agenta, mogą jednak wykonywać operacje na klawiszach, które umożliwiają:
do uwierzytelnienia przy użyciu tożsamości załadowanych do agenta.
-a Wyłącza przekazywanie połączenia agenta uwierzytelniania.
-b adres_powiązania
Zastosowanie adres_powiązania na komputerze lokalnym jako adres źródłowy połączenia. Tylko
przydatne w systemach z więcej niż jednym adresem.
-C Żąda kompresji wszystkich danych (w tym stdin, stdout, stderr i danych dla
przekazywane połączenia X11, TCP i UNIX-domen). Algorytm kompresji to
to samo używane przez gzip(1), a „poziom” może być kontrolowany przez Poziom kompresji
opcja dla protokołu w wersji 1. Kompresja jest pożądana na liniach modemowych i innych
powolne połączenia, ale spowolnią działanie tylko w szybkich sieciach. Domyślny
wartość można ustawić dla poszczególnych hostów w plikach konfiguracyjnych; zobacz
Kompresja opcja.
-c specyfikacja_szyfru
Wybiera specyfikację szyfrowania do szyfrowania sesji.
Wersja protokołu 1 pozwala na specyfikację pojedynczego szyfru. Obsługiwane wartości
to „3des”, „rozdymka” i „des”. Dla protokołu w wersji 2, specyfikacja_szyfru jest przecinkiem
oddzielona lista szyfrów wymienionych w kolejności preferencji. Zobacz szyfry słowo kluczowe w
ssh_config(5), aby uzyskać więcej informacji.
-D [adres_powiązania:]Port
Określa lokalne „dynamiczne” przekierowanie portów na poziomie aplikacji. Działa to przez
przydzielanie gniazda do słuchania Port po stronie lokalnej, opcjonalnie związane z
określony adres_powiązania. Za każdym razem, gdy nawiązywane jest połączenie z tym portem, połączenie
jest przekazywany przez bezpieczny kanał, a protokół aplikacji jest następnie używany do
określić, gdzie połączyć się ze zdalnego komputera. Obecnie SOCKS4 i
Obsługiwane są protokoły SOCKS5 i ssh będzie działać jako serwer SOCKS. Tylko root może
przekazywać uprzywilejowane porty. Dynamiczne przekierowania portów można również określić w
plik konfiguracyjny.
Adresy IPv6 można określić, umieszczając adres w nawiasach kwadratowych. Tylko
superużytkownik może przekazywać uprzywilejowane porty. Domyślnie port lokalny jest powiązany w
zgodnie z Porty bramy ustawienie. Jednak wyraźny adres_powiązania może być
używany do powiązania połączenia z określonym adresem. ten adres_powiązania „lokalnego hosta”
wskazuje, że port nasłuchujący jest powiązany tylko do użytku lokalnego, podczas gdy pusty
adres lub '*' wskazuje, że port powinien być dostępny ze wszystkich interfejsów.
-E plik dziennika
Dołącz dzienniki debugowania do plik dziennika zamiast błędu standardowego.
-e znak ucieczki
Ustawia znak ucieczki dla sesji z pty (domyślnie: '~'). Ucieczka
znak jest rozpoznawany tylko na początku wiersza. Znak ucieczki
po którym następuje kropka ('.') zamyka połączenie; następnie Control-Z zawiesza
połączenie; a następnie sam wysyła znak ucieczki raz. Ustawienie
znak na „brak” wyłącza wszelkie ucieczki i sprawia, że sesja jest w pełni przejrzysta.
-F plik konfiguracyjny
Określa alternatywny plik konfiguracyjny użytkownika. Jeśli plik konfiguracyjny jest
podany w wierszu poleceń, ogólnosystemowy plik konfiguracyjny (/ etc / ssh / ssh_config)
zostaną zignorowane. Domyślnym plikiem konfiguracyjnym dla użytkownika jest ~ / .ssh / config.
-f wnioski ssh przejść do tła tuż przed wykonaniem polecenia. Jest to przydatne, jeśli
ssh będzie prosić o hasła lub hasła, ale użytkownik chce to w
tło. Oznacza to -n. Zalecany sposób zdalnego uruchamiania programów X11
strona jest z czymś takim jak ssh -f gospodarz xterm.
Jeśli Niepowodzenie wyjścia do przodu opcja konfiguracji jest ustawiona na „tak”, to klient
zaczął z -f będzie czekać na pomyślne przekierowanie wszystkich portów zdalnych
ustanowiony przed umieszczeniem się w tle.
-G Rozwiązania ssh aby wydrukować jego konfigurację po ocenie Gospodarz i Mecz bloki i
wyjście.
-g Umożliwia zdalnym hostom łączenie się z lokalnymi przekierowanymi portami. Jeśli jest używany na multipleksie
połączenia, ta opcja musi być określona w procesie głównym.
-I PKCS11
Określ bibliotekę współdzieloną PKCS#11 ssh powinien używać do komunikacji z PKCS#11
token dostarczający prywatny klucz RSA użytkownika.
-i plik_tożsamości
Wybiera plik, z którego tożsamość (klucz prywatny) do uwierzytelniania klucza publicznego
jest czytany. Wartość domyślna to ~/.ssh/tożsamość dla protokołu w wersji 1, oraz ~/.ssh/id_dsa,
~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 i ~/.ssh/id_rsa dla protokołu w wersji 2.
Pliki tożsamości mogą być również określone dla poszczególnych hostów w pliku konfiguracyjnym.
Możliwe jest posiadanie wielu -i opcje (i wiele tożsamości określonych w
pliki konfiguracyjne). Jeśli żadne certyfikaty nie zostały wyraźnie określone przez
Plik certyfikatu dyrektywy, ssh spróbuje również załadować informacje o certyfikacie z
nazwa pliku uzyskana przez dołączenie -cert.pub do nazw plików tożsamości.
-K Włącza uwierzytelnianie oparte na GSSAPI i przekazywanie (delegowanie) GSSAPI
poświadczenia do serwera.
-k Wyłącza przekazywanie (delegowanie) danych logowania GSSAPI na serwer.
-L [adres_powiązania:]Port:gospodarz:Port hosta
-L [adres_powiązania:]Port:zdalne_gniazdo
-L gniazdo_lokalne:gospodarz:Port hosta
-L gniazdo_lokalne:zdalne_gniazdo
Określa, że połączenia z podanym portem TCP lub gniazdem Unix na lokalnym
hosta (klienta) mają być przekazywane do podanego hosta i portu lub gniazda uniksowego na
strona odległa. Działa to poprzez przydzielenie gniazda do nasłuchiwania TCP Port on
strona lokalna, opcjonalnie powiązana z określonym adres_powiązanialub do gniazda Unix.
Za każdym razem, gdy nawiązywane jest połączenie z lokalnym portem lub gniazdem, połączenie jest:
przekazywane przez bezpieczny kanał i nawiązywane jest połączenie z dowolnym gospodarz Port
Port hostalub gniazdo uniksowe zdalne_gniazdo, z komputera zdalnego.
Przekierowania portów można również określić w pliku konfiguracyjnym. Tylko
superużytkownik może przekazywać uprzywilejowane porty. Adresy IPv6 można określić za pomocą
ujmując adres w nawiasy kwadratowe.
Domyślnie port lokalny jest powiązany zgodnie z Porty bramy ustawienie.
Jednak wyraźny adres_powiązania może służyć do powiązania połączenia z określonym
adres. The adres_powiązania „localhost” wskazuje, że port nasłuchujący jest powiązany
tylko do użytku lokalnego, podczas gdy pusty adres lub „*” wskazuje, że port powinien być
dostępne ze wszystkich interfejsów.
-l Nazwa użytkownika
Określa użytkownika, który ma się logować na komputerze zdalnym. Można to również określić
na podstawie hosta w pliku konfiguracyjnym.
-M Umieszcza ssh klienta w tryb „master” w celu współdzielenia połączenia. Wiele -M
opcje miejsca ssh w tryb „master” z potwierdzeniem wymaganym przed slave
połączenia są akceptowane. Zapoznaj się z opisem Mistrz kontroli in
ssh_config(5) szczegóły.
-m mac_spec
Rozdzielana przecinkami lista algorytmów MAC (kod uwierzytelniania wiadomości), określona w
kolejność preferencji. Zobacz MAC słowo kluczowe, aby uzyskać więcej informacji.
-N Nie wykonuj poleceń zdalnych. Jest to przydatne tylko do przekazywania portów.
-n Przekierowuje standardowe wyjście z / dev / null (właściwie zapobiega czytaniu ze standardowego wejścia). To musi
być używane, gdy ssh działa w tle. Powszechną sztuczką jest użycie tego do uruchomienia X11
programy na zdalnym komputerze. Na przykład, ssh -n cienie.cs.chata.fi emacs & będzie
uruchom emacsa na shadows.cs.hut.fi, a połączenie X11 zostanie nawiązane automatycznie
przekazywane przez zaszyfrowany kanał. ten ssh program zostanie umieszczony w tle.
(To nie działa, jeśli ssh musi poprosić o hasło lub hasło; zobacz także
-f opcja.)
-O ctl_cmd
Kontroluj proces nadrzędny multipleksowania aktywnego połączenia. Kiedy -O Jest opcja
określony, ctl_cmd argument jest interpretowany i przekazywany do procesu głównego.
Prawidłowe polecenia to: „check” (sprawdź, czy główny proces jest uruchomiony), „forward”
(przekierowania żądań bez wykonania polecenia), „anuluj” (anuluj przekierowania),
„exit” (poproś mastera o wyjście) i „stop” (poproś mastera o zatrzymanie)
przyjmowanie dalszych żądań multipleksowania).
-o opcja
Może służyć do podania opcji w formacie używanym w pliku konfiguracyjnym. To jest
przydatne do określania opcji, dla których nie ma oddzielnej flagi wiersza poleceń. Do
pełne szczegóły opcji wymienionych poniżej i ich możliwe wartości, patrz
ssh_config(5).
Dodaj klucze do agenta
AdresRodzina
Tryb wsadowy
BindAdres
Domeny kanoniczne
CanonicalizeFallbackLocal
CanonicalizeNazwa hosta
Kanonalizuj MaxDots
Kanonizuj dozwolone rekordy CNAME
Plik certyfikatu
WyzwanieOdpowiedźUwierzytelnianie
SprawdźHostIP
Szyfr
szyfry
Wyczyść wszystkie przekazy
Kompresja
Poziom kompresji
Próby połączenia
Limit czasu połączenia
Mistrz kontroli
Ścieżka Kontroli
KontrolaUtrzymuj
Dynamiczny do przodu
UcieczkaChar
Niepowodzenie wyjścia do przodu
Odcisk palcaHash
Agent przekazujący
NaprzódX11
Przekroczenie limitu czasu X11
Przekaż X11Zaufany
Porty bramy
Globalny znany plik hostów
Uwierzytelnianie GSSAPI
Poświadczenia delegata GSSAP
HashZnaneHosts
Gospodarz
Uwierzytelnianie na hoście
Typy kluczy oparte na hoście
Algorytmy klucza hosta
Alias klucza hosta
Nazwa hosta
Plik tożsamości
Tylko tożsamości
IPQoS
KbdInteraktywne uwierzytelnianie
Urządzenia interaktywne Kbd
Algorytmy Kex
Polecenie lokalne
Przekaz lokalny
LogLevel
MAC
Mecz
Brak uwierzytelniania hosta dla hosta lokalnego
Liczba monitów o hasło
Uwierzytelnianie hasła
Zezwól na polecenie lokalne
Dostawca PKCS11
Port
Preferowane uwierzytelnienia
Protokół
Polecenie proxy
ProxyUżyjFdpass
Zaakceptowane typy kluczy klucza pubowego
Uwierzytelnianie Pubkey
Limit ponownego klucza
Zdalne przekazywanie
Żądanie TTY
RhostsRSAAuwierzytelnianie
Uwierzytelnianie RSAA
WyślijEnv
Interwał aktywności serwera
SerwerAliveCountMax
StrumieńLocalBindMask
StrumieńLokalnePowiązanieOdłącz
Ścisłe sprawdzanie klucza hosta
TCP KeepAlive
Tunel
TunelUrządzenie
Aktualizuj klucze hostów
Użyj uprzywilejowanego portu
Użytkownik
Znany plik hostów użytkownika
ZweryfikujHostKeyDNS
Klucz wizualny hosta
XAuthLokalizacja
-p Port
Port do połączenia na zdalnym hoście. Można to określić dla poszczególnych hostów w
plik konfiguracyjny.
-Q zapytanie_opcja
Pytania ssh dla algorytmów obsługiwanych dla określonej wersji 2. Dostępne
cechy to: szyfr (obsługiwane szyfry symetryczne), szyfr-auth (obsługiwane symetryczne
szyfry obsługujące uwierzytelnione szyfrowanie), mac (obsługiwana integralność wiadomości
kody), KEX (algorytmy wymiany kluczy), klucz (typy kluczy), klucz-cert (klucz certyfikatu
rodzaje), klucz-zwykły (typy kluczy niebędących certyfikatami) oraz wersja-protokołu (obsługiwane SSH
wersje protokołów).
-q Tryb cichy. Powoduje pominięcie większości komunikatów ostrzegawczych i diagnostycznych.
-R [adres_powiązania:]Port:gospodarz:Port hosta
-R [adres_powiązania:]Port:gniazdo_lokalne
-R zdalne_gniazdo:gospodarz:Port hosta
-R zdalne_gniazdo:gniazdo_lokalne
Określa, że połączenia z podanym portem TCP lub gniazdem Unix na zdalnym
hosta (serwera) mają być przekazywane do podanego hosta i portu lub gniazda uniksowego na
strona lokalna. Działa to poprzez przydzielenie gniazda do nasłuchiwania TCP Port lub
gniazdo Unix po stronie zdalnej. Za każdym razem, gdy nawiązywane jest połączenie z tym portem lub
Gniazdo Unix, połączenie jest przekazywane przez bezpieczny kanał, a połączenie
jest zrobiony albo gospodarz Port Port hostalub gniazdo_lokalne, z komputera lokalnego.
Przekierowania portów można również określić w pliku konfiguracyjnym. Uprzywilejowane porty
mogą być przekazywane tylko wtedy, gdy logujesz się jako root na zdalnej maszynie. Adresy IPv6
można określić, umieszczając adres w nawiasach kwadratowych.
Domyślnie gniazda nasłuchujące TCP na serwerze będą powiązane z pętlą zwrotną
tylko interfejs. Można to zmienić, określając adres_powiązania. Pusty
adres_powiązanialub adres '*' wskazuje, że zdalne gniazdo powinno nasłuchiwać
wszystkie interfejsy. Określanie pilota adres_powiązania odniesie sukces tylko wtedy, gdy serwer
Porty bramy opcja jest włączona (patrz sshd_config(5)).
Jeśli Port argument to '0', port nasłuchiwania zostanie dynamicznie przydzielony na
serwer i zgłaszane klientowi w czasie wykonywania. W połączeniu z -O Naprzód
przydzielony port zostanie wydrukowany na standardowe wyjście.
-S ścieżka_ctl
Określa lokalizację gniazda sterującego do udostępniania połączenia lub ciąg
„brak”, aby wyłączyć udostępnianie połączenia. Zapoznaj się z opisem Ścieżka Kontroli i
Mistrz kontroli in ssh_config(5) szczegóły.
-s Może służyć do żądania wywołania podsystemu w systemie zdalnym. Podsystemy
ułatwić korzystanie z SSH jako bezpiecznego transportu dla innych aplikacji (np
Sftp(1)). Podsystem jest określony jako polecenie zdalne.
-T Wyłącz alokację pseudoterminali.
-t Wymuś alokację pseudoterminalu. Może to być użyte do wykonania dowolnego ekranu-
programy oparte na zdalnej maszynie, co może być bardzo przydatne np. przy wdrażaniu
usługi menu. Wiele -t opcje wymuszają alokację tty, nawet jeśli ssh nie ma lokalnego
tty.
-V Wyświetl numer wersji i wyjdź.
-v Tryb szczegółowy. Powoduje ssh aby wydrukować komunikaty debugowania o jego postępie. To jest
pomocny w debugowaniu problemów z połączeniem, uwierzytelnianiem i konfiguracją.
Wielokrotność -v opcje zwiększają szczegółowość. Maksimum to 3.
-W gospodarz:Port
Żądania przekazywania standardowych danych wejściowych i wyjściowych klienta gospodarz on Port
przez bezpieczny kanał. Implikuje -N, -T, Niepowodzenie wyjścia do przodu i
Wyczyść wszystkie przekazy.
-w lokalny_tun[:zdalny_tun]
Żąda przekierowania urządzenia tunelującego z określonym kadź(4) urządzenia między
klient (lokalny_tun) i serwer (zdalny_tun).
Urządzenia można określić za pomocą numerycznego identyfikatora lub słowa kluczowego „any”, które wykorzystuje
następne dostępne urządzenie tunelowe. Gdyby zdalny_tun nie jest określony, domyślnie jest to „dowolny”.
Zobacz też Tunel i TunelUrządzenie dyrektywy w ssh_config(5). Jeśli Tunel
Dyrektywa nie jest ustawiona, jest ustawiona na domyślny tryb tunelowania, czyli „od punktu do punktu”.
-X Włącza przekazywanie X11. Można to również określić dla poszczególnych hostów w a
plik konfiguracyjny.
Przekazywanie X11 należy włączać ostrożnie. Użytkownicy z możliwością obejścia
uprawnienia do plików na zdalnym hoście (dla bazy autoryzacji X użytkownika) mogą:
uzyskać dostęp do lokalnego wyświetlacza X11 poprzez połączenie przekazywane. Atakujący może wtedy
być w stanie wykonywać czynności, takie jak monitorowanie naciśnięć klawiszy.
Z tego powodu przekazywanie X11 podlega ograniczeniom rozszerzenia X11 SECURITY
domyślnie. Proszę odnieść się do ssh -Y opcja i Przekaż X11Zaufany Dyrektywy
in ssh_config(5), aby uzyskać więcej informacji.
(Specyficzne dla Debiana: przekazywanie X11 nie podlega rozszerzeniu X11 SECURITY
domyślnie ograniczeń, ponieważ zbyt wiele programów ulega obecnie awarii w tym trybie.
Ustaw Przekaż X11Zaufany opcja na „nie”, aby przywrócić zachowanie w górę. Ten
może ulec zmianie w przyszłości w zależności od ulepszeń po stronie klienta).
-x Wyłącza przekazywanie X11.
-Y Włącza zaufane przekazywanie X11. Zaufane przekierowania X11 nie podlegają
Sterowanie rozszerzeniem X11 SECURITY.
(specyficzne dla Debiana: ta opcja nie robi nic w domyślnej konfiguracji: jest
równoważny "Przekaż X11Zaufany tak”, co jest wartością domyślną, jak opisano powyżej. Ustawić
dotychczasowy Przekaż X11Zaufany opcja na „nie”, aby przywrócić zachowanie w górę. Tego maja
zmiana w przyszłości w zależności od ulepszeń po stronie klienta.)
-y Wyślij informacje z dziennika za pomocą syslog(3) moduł systemowy. Domyślnie te informacje
jest wysyłany na stderr.
ssh może dodatkowo uzyskać dane konfiguracyjne z pliku konfiguracyjnego użytkownika oraz
ogólnosystemowy plik konfiguracyjny. Format pliku i opcje konfiguracji są opisane w
ssh_config(5).
POŚWIADCZENIE
Klient OpenSSH SSH obsługuje protokoły SSH 1 i 2. Domyślnie używany jest protokół 2
tylko, chociaż można to zmienić za pomocą Protokół opcja w ssh_config(5) lub -1 i -2
opcje (patrz wyżej). Protokół 1 nie powinien być używany i jest oferowany tylko w celu obsługi starszej wersji
urządzenia. Ma wiele słabości kryptograficznych i nie obsługuje wielu z
zaawansowane funkcje dostępne dla protokołu 2.
Dostępne metody uwierzytelniania to: Uwierzytelnianie oparte na GSSAPI, oparte na hoście
uwierzytelnianie, uwierzytelnianie klucza publicznego, uwierzytelnianie typu wyzwanie-odpowiedź i hasło
uwierzytelnianie. Metody uwierzytelniania są jednak wypróbowywane w podanej powyżej kolejności
Preferowane uwierzytelnienia może służyć do zmiany domyślnej kolejności.
Uwierzytelnianie oparte na hoście działa w następujący sposób: Jeśli na liście znajduje się urządzenie, z którego użytkownik się loguje
in /etc/hosts.ekw or /etc/ssh/shosts.equiv na zdalnym komputerze, a nazwy użytkowników to
to samo po obu stronach lub jeśli pliki ~/.rhosts or ~/.shosts istnieją w domu użytkownika
katalogu na zdalnej maszynie i zawierają linię zawierającą nazwę komputera klienta
i nazwę użytkownika na tym komputerze, użytkownik jest uważany za zalogowany. Dodatkowo,
serwer musi być w stanie zweryfikować klucz hosta klienta (patrz opis
/etc/ssh/ssh_znane_hosty i ~/.ssh/znane_hosty, poniżej), aby umożliwić logowanie. Ten
metoda uwierzytelniania zamyka luki w zabezpieczeniach spowodowane fałszowaniem adresów IP, fałszowaniem DNS i routingiem
podszywanie się. [Uwaga do administratora: /etc/hosts.ekw, ~/.rhostsi rlogin/rsh
ogólnie, są z natury niezabezpieczone i powinny być wyłączone, jeśli wymagane jest bezpieczeństwo.]
Uwierzytelnianie klucza publicznego działa w następujący sposób: Schemat oparty jest na kryptografii klucza publicznego,
przy użyciu kryptosystemów, w których szyfrowanie i deszyfrowanie odbywa się za pomocą oddzielnych kluczy i jest to
niemożliwe jest uzyskanie klucza deszyfrującego z klucza szyfrowania. Chodzi o to, aby każdy użytkownik
tworzy parę kluczy publiczny/prywatny do celów uwierzytelniania. Serwer zna opinię publiczną
klucz, a tylko użytkownik zna klucz prywatny. ssh implementuje uwierzytelnianie klucza publicznego
protokół automatycznie, przy użyciu jednego z algorytmów DSA, ECDSA, Ed25519 lub RSA. Historia
odcinek ssl(8) (w systemach innych niż OpenBSD, zobacz
http://www.openbsd.org/cgi-bin/man.cgi?query=ssl&sektion=8#HISTORIA) zawiera brief
omówienie algorytmów DSA i RSA.
Plik ~/.ssh/authorized_keys zawiera listę kluczy publicznych, które są dozwolone do logowania.
Gdy użytkownik się zaloguje, ssh program mówi serwerowi, której pary kluczy chciałby użyć
do uwierzytelniania. Klient udowadnia, że ma dostęp do klucza prywatnego i serwera
sprawdza, czy odpowiedni klucz publiczny jest upoważniony do akceptacji konta.
Użytkownik tworzy swoją parę kluczy, uruchamiając ssh-keygen(1). To przechowuje klucz prywatny w
~/.ssh/tożsamość (protokół 1), ~/.ssh/id_dsa (DSA), ~/.ssh/id_ecdsa (ECDSA),
~/.ssh/id_ed25519 (Wyd.25519) lub ~/.ssh/id_rsa (RSA) i przechowuje klucz publiczny w
~/.ssh/identity.pub (protokół 1), ~/.ssh/id_dsa.pub (DSA), ~/.ssh/id_ecdsa.pub (ECDSA),
~/.ssh/id_ed25519.pub (Wyd.25519) lub ~ / .ssh / id_rsa.pub (RSA) w katalogu domowym użytkownika.
Użytkownik powinien następnie skopiować klucz publiczny do ~/.ssh/authorized_keys w jego/jej katalogu domowym
na zdalnym komputerze. ten autoryzowane_klucze plik odpowiada konwencjonalnemu ~/.rhosts
plik i ma jeden klucz w wierszu, chociaż wiersze mogą być bardzo długie. Następnie użytkownik może:
zaloguj się bez podawania hasła.
Odmiana uwierzytelniania klucza publicznego jest dostępna w postaci certyfikatu
uwierzytelnianie: zamiast zestawu kluczy publicznych/prywatnych używane są podpisane certyfikaty. Ten
ma tę zaletę, że można użyć jednego zaufanego urzędu certyfikacji zamiast wielu
klucze publiczne/prywatne. Zobacz sekcję CERTYFIKATY ssh-keygen(1), aby uzyskać więcej informacji.
Najwygodniejszym sposobem użycia klucza publicznego lub uwierzytelnienia certyfikatu może być użycie
agenta uwierzytelniania. Widzieć ssh-agent(1) i (opcjonalnie) Dodaj klucze do agenta dyrektywa w
ssh_config(5), aby uzyskać więcej informacji.
Uwierzytelnianie typu wyzwanie-odpowiedź działa w następujący sposób: serwer wysyła dowolny
tekst „wyzwania” i monit o odpowiedź. Przykłady uwierzytelniania typu wyzwanie-odpowiedź
zawierać uwierzytelnianie BSD (zobacz login.konf(5)) i PAM (niektóre systemy inne niż OpenBSD).
Wreszcie, jeśli inne metody uwierzytelniania zawiodą, ssh prosi użytkownika o hasło. ten
hasło jest wysyłane do zdalnego hosta w celu sprawdzenia; jednak, ponieważ wszystkie komunikaty są
zaszyfrowane, hasło nie jest widoczne dla osoby nasłuchującej w sieci.
ssh automatycznie utrzymuje i sprawdza bazę danych zawierającą identyfikację wszystkich hostów
kiedykolwiek był używany. Klucze hosta są przechowywane w ~/.ssh/znane_hosty w domu użytkownika
informator. Dodatkowo plik /etc/ssh/ssh_znane_hosty jest automatycznie sprawdzany pod kątem
znanych gospodarzy. Wszelkie nowe hosty są automatycznie dodawane do pliku użytkownika. Jeśli hosta
identyfikacja zawsze się zmienia, ssh ostrzega o tym i wyłącza uwierzytelnianie hasłem, aby
zapobiegać podszywaniu się pod serwer lub atakom typu man-in-the-middle, które w przeciwnym razie mogłyby zostać wykorzystane do
obejść szyfrowanie. ten Ścisłe sprawdzanie klucza hosta opcja może służyć do kontroli logowania
do maszyn, których klucz hosta nie jest znany lub został zmieniony.
Gdy tożsamość użytkownika zostanie zaakceptowana przez serwer, serwer wykonuje
dane polecenie w sesji nieinteraktywnej lub, jeśli nie podano żadnego polecenia, loguje się do
maszynie i daje użytkownikowi normalną powłokę jako sesję interaktywną. Cała komunikacja
za pomocą zdalnego polecenia lub powłoki zostaną automatycznie zaszyfrowane.
Jeśli wymagana jest sesja interaktywna ssh domyślnie zażąda tylko pseudoterminalu
(pty) dla sesji interaktywnych, gdy klient je posiada. Flagi -T i -t mogą być stosowane w celu
zastąpić to zachowanie.
Jeśli pseudoterminal został przydzielony, użytkownik może użyć wymienionych poniżej znaków ucieczki.
Jeśli nie został przydzielony żaden pseudoterminal, sesja jest przezroczysta i można jej użyć do:
niezawodnie przesyłać dane binarne. W większości systemów ustawienie znaku ucieczki na „brak” spowoduje:
sprawiają, że sesja jest przejrzysta, nawet jeśli używany jest tty.
Sesja kończy się, gdy polecenie lub powłoka na zdalnej maszynie kończy działanie i wszystkie X11 i
Połączenia TCP zostały zamknięte.
ESCAPE POSTACIE
Gdy zażądano pseudoterminalu, ssh obsługuje szereg funkcji poprzez
użycie znaku ucieczki.
Pojedynczy znak tyldy można wysłać jako ~~ lub podążając za tyldą przez inną postać
niż te opisane poniżej. Znak ucieczki musi zawsze następować po nowej linii, aby był
interpretowane jako specjalne. Znak ucieczki można zmienić w plikach konfiguracyjnych za pomocą
dotychczasowy UcieczkaChar dyrektywy konfiguracyjnej lub w wierszu poleceń przez -e opcja.
Obsługiwane znaki ucieczki (przy założeniu domyślnego „~”) to:
~. Rozłączyć się.
~^ Z Tło ssh.
~# Wyświetl listę przekierowanych połączeń.
~& Tło ssh przy wylogowaniu podczas oczekiwania na połączenie przekazane / sesje X11 do
zakończyć.
~? Wyświetl listę znaków ucieczki.
~B Wyślij BREAK do zdalnego systemu (przydatne tylko, jeśli peer to obsługuje).
~C Otwórz wiersz poleceń. Obecnie pozwala to na dodanie przekierowań portów za pomocą
-L, -R i -D opcje (patrz wyżej). Pozwala również na anulowanie istniejących
przekierowania portów z -KL[adres_powiązania:]Port dla lokalnych, -KR[adres_powiązania:]Port dla
zdalne i -KD[adres_powiązania:]Port do dynamicznego przekierowania portów. !komenda Pozwala
użytkownika do wykonania lokalnego polecenia, jeśli Zezwól na polecenie lokalne opcja jest włączona w
ssh_config(5). Dostępna jest pomoc podstawowa, korzystając z -h opcja.
~R Żądanie ponownego klucza połączenia (przydatne tylko, jeśli peer to obsługuje).
~V Zmniejsz szczegółowość (LogLevel), gdy błędy są zapisywane na stderr.
~v Zwiększ szczegółowość (LogLevel), gdy błędy są zapisywane na stderr.
TCP PRZEKIEROWANIE
Przekazywanie dowolnych połączeń TCP przez bezpieczny kanał można określić albo na
w wierszu poleceń lub w pliku konfiguracyjnym. Jednym z możliwych zastosowań przekazywania TCP jest
bezpieczne połączenie z serwerem pocztowym; inny przechodzi przez zapory.
W poniższym przykładzie przyjrzymy się szyfrowaniu komunikacji między klientem IRC a serwerem,
nawet jeśli serwer IRC nie obsługuje bezpośrednio szyfrowanej komunikacji. To działa
w następujący sposób: użytkownik łączy się ze zdalnym hostem za pomocą ssh, określając port, który ma być używany do
przekazywanie połączeń do zdalnego serwera. Po tym możliwe jest uruchomienie usługi
który ma być zaszyfrowany na komputerze klienckim, łączącym się z tym samym portem lokalnym, oraz ssh
zaszyfruje i przekaże połączenie.
Poniższy przykład tuneluje sesję IRC z komputera klienckiego „127.0.0.1” (localhost) do
serwer zdalny „server.example.com”:
$ ssh -f -L 1234:localhost:6667 server.example.com sen 10
$ irc -c '#użytkownicy' -p 1234 pinky 127.0.0.1
To tuneluje połączenie z serwerem IRC „server.example.com”, dołączając do kanału „#users”,
pseudonim „pinky”, używający portu 1234. Nie ma znaczenia, który port jest używany, o ile jest
większe niż 1023 (pamiętaj, że tylko root może otwierać gniazda na uprzywilejowanych portach) i nie
konflikt z jakimikolwiek portami już używanymi. Połączenie jest przekazywane do portu 6667 na
serwer zdalny, ponieważ jest to standardowy port dla usług IRC.
-f tła opcji ssh i określono zdalne polecenie „sleep 10”, aby umożliwić
ilość czasu (w przykładzie 10 sekund) na uruchomienie usługi, która ma być tunelowana.
Jeśli w określonym czasie nie zostaną nawiązane żadne połączenia, ssh wyjdzie.
X11 PRZEKIEROWANIE
Jeśli NaprzódX11 zmienna jest ustawiona na „tak” (lub zobacz opis -X, -x, -Y
opcje powyżej) i użytkownik używa X11 (ustawiona jest zmienna środowiskowa DISPLAY),
połączenie z wyświetlaczem X11 jest automatycznie przekazywane na odległą stronę w taki sposób
że każdy program X11 uruchomiony z powłoki (lub polecenia) przejdzie przez zaszyfrowany
kanał, a połączenie z rzeczywistym serwerem X zostanie nawiązane z komputera lokalnego. ten
użytkownik nie powinien ręcznie ustawiać WYŚWIETLACZA. Przekazywanie połączeń X11 można skonfigurować na
w wierszu poleceń lub w plikach konfiguracyjnych.
Wartość WYŚWIETLACZA ustawiona przez ssh wskaże serwer, ale z numerem wyświetlacza
większe od zera. Jest to normalne i zdarza się, ponieważ ssh tworzy „proxy” serwer X na
maszyna serwerowa do przekazywania połączeń przez zaszyfrowany kanał.
ssh automatycznie skonfiguruje również dane Xauthority na serwerze. W tym celu
wygeneruje losowy plik cookie autoryzacji, zapisze go w Xauthority na serwerze i
zweryfikuj, czy wszelkie przekierowane połączenia zawierają ten plik cookie i zastąp go prawdziwym plikiem cookie
gdy połączenie jest otwarte. Prawdziwy plik cookie uwierzytelniania nigdy nie jest wysyłany na serwer
maszynie (i żadne ciasteczka nie są wysyłane w zwykły sposób).
Jeśli Agent przekazujący zmienna jest ustawiona na „tak” (lub zobacz opis -A i -a
powyżej) i użytkownik korzysta z agenta uwierzytelniania, połączenie z agentem jest
automatycznie przekazywane na odległą stronę.
WERYFIKACJA HOST KLUCZE
Podczas pierwszego łączenia się z serwerem odcisk palca klucza publicznego serwera jest
prezentowane użytkownikowi (chyba że opcja Ścisłe sprawdzanie klucza hosta został wyłączony).
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żna go dopasować, a klucz można zaakceptować lub
odrzucony. Jeśli dostępne są tylko starsze odciski palców (MD5) dla serwera, ssh-keygen(1)
-E opcja może być użyta do obniżenia poziomu algorytmu linii papilarnych w celu dopasowania.
Ze względu na trudność porównywania kluczy hostów tylko na podstawie ciągów linii papilarnych,
dostępna jest również obsługa wizualnego porównywania kluczy hostów za pomocą przypadkowy sztuka. Poprzez ustawienie
Klucz wizualny hosta opcja na „tak”, mała grafika ASCII jest wyświetlana przy każdym logowaniu do a
serwer, bez względu na to, czy sama sesja jest interaktywna, czy nie. Ucząc się wzoru a
znanego serwera, użytkownik może łatwo dowiedzieć się, że klucz hosta uległ zmianie, gdy
wyświetlany jest zupełnie inny wzór. Bo te wzorce nie są jednoznaczne
jednak wzór, który wygląda podobnie do zapamiętanego wzoru, daje tylko dobre
prawdopodobieństwo, że klucz hosta jest taki sam, nie jest gwarantowany dowód.
Aby uzyskać listę odcisków palców wraz z ich losową grafiką dla wszystkich znanych hostów,
można użyć następującego wiersza poleceń:
$ ssh-keygen -lv -f ~/.ssh/znane_hosty
Jeśli odcisk palca jest nieznany, dostępna jest alternatywna metoda weryfikacji: SSH
odciski palców zweryfikowane przez DNS. Dodatkowy rekord zasobu (RR), SSHFP, jest dodawany do
zonefile i łączący się klient jest w stanie dopasować odcisk palca do odcisku klucza
przedstawione.
W tym przykładzie łączymy klienta z serwerem „host.example.com”. SSHFP
rekordy zasobów należy najpierw dodać do pliku strefy dla host.example.com:
$ ssh-keygen -r host.example.com.
Linie wyjściowe będą musiały zostać dodane do pliku strefy. Aby sprawdzić, czy strefa odpowiada
zapytania odcisków palców:
$ dig -t SSHFP host.example.com
Wreszcie klient łączy:
$ ssh -o "ZweryfikujHostKeyDNS zapytaj" host.example.com
[...]
W DNS znaleziono pasujący odcisk palca klucza hosta.
Czy na pewno chcesz kontynuować połączenie (tak / nie)?
Zobacz ZweryfikujHostKeyDNS opcja w ssh_config(5), aby uzyskać więcej informacji.
OPARTY NA SSH VIRTUAL OSOBY SIECI
ssh zawiera obsługę tunelowania wirtualnej sieci prywatnej (VPN) przy użyciu kadź(4) sieć
pseudourządzenie, umożliwiające bezpieczne połączenie dwóch sieci. ten sshd_config(5)
opcja konfiguracji PozwolenieTunel kontroluje, czy serwer to obsługuje i na czym
poziom (ruch w warstwie 2 lub 3).
Poniższy przykład połączy sieć klienta 10.0.50.0/24 z siecią zdalną
10.0.99.0/24 przy użyciu połączenia punkt-punkt od 10.1.1.1 do 10.1.1.2, pod warunkiem, że
Umożliwia to serwer SSH działający na bramie do sieci zdalnej pod adresem 192.168.1.15.
U klienta:
# ssh -f -w 0:1 192.168.1.15 prawda
# ifconfig tun0 10.1.1.1 10.1.1.2 maska sieci 255.255.255.252
# trasa dodaj 10.0.99.0/24 10.1.1.2
Na serwerze:
# ifconfig tun1 10.1.1.2 10.1.1.1 maska sieci 255.255.255.252
# trasa dodaj 10.0.50.0/24 10.1.1.1
Dostęp klienta może być dokładniej dostrojony za pomocą /root/.ssh/authorized_keys plik (patrz poniżej)
i ZezwolenieRootZaloguj opcja serwera. Poniższy wpis umożliwiłby połączenia na
kadź(4) urządzenie 1 od użytkownika „jane” i na urządzeniu 2 od użytkownika „john”, jeśli ZezwolenieRootZaloguj is
ustawiony na „tylko polecenia wymuszone”:
tunel = "1", polecenie = "sh /etc/netstart tun1" ssh-rsa ... jane
tunel = "2", polecenie = "sh /etc/netstart tun2" ssh-rsa ... jan
Ponieważ konfiguracja oparta na SSH pociąga za sobą spory narzut, może być bardziej odpowiednia:
konfiguracje tymczasowe, takie jak bezprzewodowe sieci VPN. Bardziej trwałe VPN są lepiej zapewniane przez
narzędzia takie jak ipsectl(8) i isakmpd(8).
ŚRODOWISKO
ssh zwykle ustawia następujące zmienne środowiskowe:
DISPLAY Zmienna DISPLAY wskazuje lokalizację serwera X11. To jest
ustawiane automatycznie przez ssh aby wskazać wartość w postaci „nazwa hosta:n”,
gdzie „nazwa hosta” wskazuje hosta, na którym działa powłoka, a 'n' to
liczba całkowita ≥ 1. ssh używa tej specjalnej wartości do przekazania X11
połączenia przez bezpieczny kanał. Użytkownik normalnie nie powinien ustawiać
DISPLAY wyraźnie, ponieważ spowoduje to niepewność połączenia X11
(i będzie wymagać od użytkownika ręcznego skopiowania wymaganej autoryzacji)
ciasteczka).
HOME Ustaw ścieżkę do katalogu domowego użytkownika.
LOGNAME Synonim dla UŻYTKOWNIKA; ustawiony na zgodność z systemami, które tego używają
zmienna.
POCZTA Ustawia ścieżkę do skrzynki pocztowej użytkownika.
PATH Ustaw domyślną PATH, określoną podczas kompilacji ssh.
SSH_ASKPASS Jeśli ssh potrzebuje hasła, odczyta hasło z
bieżący terminal, jeśli został uruchomiony z terminala. Gdyby ssh nie ma
skojarzony z nim terminal, ale ustawione są DISPLAY i SSH_ASKPASS, to
wykona program określony przez SSH_ASKPASS i otworzy X11
okno do odczytania hasła. Jest to szczególnie przydatne, gdy
powołanie ssh z .xsesja lub powiązany skrypt. (Zauważ, że w niektórych
maszyn może być konieczne przekierowanie danych wejściowych z / dev / null do
spraw, aby to działało.)
SSH_AUTH_SOCK Identyfikuje ścieżkę gniazda domeny UNIX używanego do komunikacji z
agent.
SSH_CONNECTION Identyfikuje końce połączenia klienta i serwera. Zmienna
zawiera cztery wartości oddzielone spacjami: adres IP klienta, port klienta
numer, adres IP serwera i numer portu serwera.
SSH_ORIGINAL_COMMAND Ta zmienna zawiera oryginalną linię poleceń w przypadku wymuszonego polecenia
jest wykonywany. Może być użyty do wyodrębnienia oryginalnych argumentów.
SSH_TTY Jest to nazwa powiązanego terminala tty (ścieżka do urządzenia)
z bieżącą powłoką lub poleceniem. Jeśli bieżąca sesja nie ma tty,
ta zmienna nie jest ustawiona.
TZ Ta zmienna jest ustawiona, aby wskazać aktualną strefę czasową, jeśli została ustawiona
kiedy demon został uruchomiony (tzn. demon przekazuje wartość do
nowe połączenia).
USER Ustaw nazwę logującego się użytkownika.
Dodatkowo, ssh czyta ~/.ssh/środowiskoi dodaje wiersze w formacie „NAZWA ZMIENNEJ=wartość” do
środowisko, jeśli plik istnieje, a użytkownicy mogą zmieniać swoje środowisko. Do
więcej informacji, zobacz ZezwólŚrodowiskoUżytkownika opcja w sshd_config(5).
Korzystaj z ssh online za pomocą usług onworks.net