Tak więc w Internecie oczywiście jest duża ilość przykłady instalacji SSH, ale to pech 🙂 nie wszystkie szczegóły są wszędzie opisane, a czasami dla początkującego nie jest to łatwe w tej sytuacji, sam tego doświadczyłem ... A więc oto kompletny i szczegółowy opis instalacji wielki i potężny SSH.

Najpierw zainstalujmy SSH na maszynie, z którą planujemy się połączyć. W tym celu w konsoli (wiersz poleceń, terminal) wpisz polecenie:

sudo apt-get install openssh-server

Po tym poleceniu SSH zostanie automatycznie znaleziony i zainstalowany (oczywiście musisz połączyć się z wielkim i potężnym Internetem). Następnie musisz skonfigurować. Cała konfiguracja naszego serwera odbywa się poprzez zmianę pliku /etc/ssh/sshd_config. Ale najpierw polecam wykonanie kopii zapasowej oryginalnego pliku konfiguracyjnego. W tym celu piszemy:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

Teraz oryginalny plik konfiguracyjny zostanie skopiowany do tego samego katalogu, w którym był, ale będzie już nazywany sshd_config.original, po czym możemy bezpiecznie dokonać wszystkich niezbędnych zmian, ponieważ w każdej chwili możemy przywrócić oryginalne ustawienia. Więc otwieramy plik konfiguracyjny do edycji, otwieram go przez edytor nano, moim zdaniem jest to świetny edytor do pracy w konsoli.

sudo nano /etc/ssh/sshd_config

Zobaczysz następujące dyrektywy:

  • Port 22 - określa port, na którym serwer będzie nasłuchiwał połączenia przychodzącego. Na przykład Port 1234 oznacza, że ​​będzie można połączyć się z serwerem na porcie 1234. Ale standardowym jest port 22, chociaż polecam go zmienić, ponieważ to z tego portu „nieprzyjazne osobowości Internetu otwierają przestrzeń ” zaczynamy włamywać się do serwera.
  • PermitRootLogin nie - lepiej ustawić na wartość nie. Zapobiegnie to zalogowaniu się jako root.
  • ListenAddress określa, na którym protokole/interfejsie ssh będzie nasłuchiwać.
  • Protokół — pozwala wybrać wersję protokołu 1 lub 2. Zalecany jest protokół 2.
  • HostKey - pliki kluczy dla drugiej wersji protokołu SSH
  • PermitEmptyPasswords no - zabroń pustych haseł, niezawodność nie zaszkodzi.
  • UsePrivilegeSeparation — najlepiej pozostawić włączone dla bezpieczeństwa.
  • AllowUsers Goodboy - tego parametru nie ma w konfiguracji, radzę go dodać. Goodboy - nazwa Twojego użytkownika (każdy ma oczywiście swoją, to tylko przykład). Ten parametr ustawia uprawnienia tylko do logowania i tylko z tą nazwą, ssh jest dziurkowany nie tylko dla hasła, ale także dla nazw systemowych lub standardowych. Na przykład apache, www, który z jakiegoś powodu może okazać się pozbawiony hasła, czy andy, bobby, anna itp. Możesz dodać adres IP do nazwy Goodboy - [e-mail chroniony]- jeśli masz pewność, że na komputerze klienta jest to zawsze ten niezmieniony adres. Ta opcja pozwoli zalogować się tylko użytkownikowi Goodboy i tylko wtedy, gdy jego host odpowiada podanemu. W zasadzie nie jest to oczywiście konieczne, ale po piąte, dodatkowa ochrona nie zaszkodzi.

Ponownie konfigurujemy te ustawienia, których potrzebujesz dodatkowo, następnie naciśnij przycisk F3, aby zapisać, a następnie Enter, aby potwierdzić i F2, aby wyjść z konsoli z powrotem.

Następnie uruchom ponownie demona SSH:

sudo /etc/init.d/ssh restart

Wtedy możemy się z nim połączyć. Z reguły serwer jest na Linuksie, a pracujące maszyny są zazwyczaj na Windowsie, wtedy połączymy się z serwerem przez system operacyjny Windows. Aby to zrobić, na maszynie, z którą planujemy się połączyć, instalujemy 2 programy: Kit— dostęp do wiersza poleceń serwera, WinSCP- dla wygodniejszych standardowych operacji kopiowania, usuwania, przenoszenia, tworzenia folderów na serwerze i tak dalej. Ostatni program swoim interfejsem przypomina analog całkowity dowódca, Far manager i podobne programy. W rzeczywistości możesz używać nie tylko WinSCP, ale także powyższych programów, a także FileZilla i innych, ale moim zdaniem jest łatwiej, wygodniej i mniej problematycznie skonfigurować i pracować z obecnym programem. Tak więc, aby się połączyć, wystarczy podać port, z którym chcesz się połączyć, domyślnie 22, jeśli go nie zmieniłeś, a następnie nazwę hosta lub jego adres IP. Ponieważ serwery są zwykle umieszczane na statycznych adresach IP, nie stanowi to problemu.

Dziękujemy za zainteresowanie naszą stroną. Specjalistyczna firma IT istnieje od 2006 roku i świadczy usługi outsourcingu IT. Outsourcing to przeniesienie niezbędnej, ale nie podstawowej dla firmy pracy do innej organizacji. W naszym przypadku są to: tworzenie, obsługa i utrzymanie witryn, promocja witryn w wyszukiwarkach, obsługa i administracja serwerami z systemem Debian GNU/Linux.

Witryny na Joomla

W dobie informacji strona de facto staje się co najmniej wizytówką organizacji, a często jednym z narzędzi biznesowych. Już teraz powstają strony internetowe nie tylko dla organizacji i osób prywatnych, ale także dla poszczególnych towarów, usług, a nawet wydarzeń. Dziś strona jest nie tylko źródłem reklamy dla ogromnej publiczności, ale także narzędziem sprzedaży i nawiązywania nowych kontaktów. Tworzymy strony internetowe z wykorzystaniem CMS Joomla! Ten system zarządzania treścią jest prosty i intuicyjny. Jest bardzo rozpowszechniony i dlatego w Internecie jest wiele informacji na jego temat. Znalezienie specjalisty pracującego z Joomla jest również łatwe. I nie musisz iść daleko! Nasz informatyk zajmuje się utrzymaniem i wsparciem witryn w Joomla! Wykonamy wszelkie prace techniczne, zajmiemy się wszelką korespondencją z hosterem i rejestratorem domen, wypełnimy stronę i zaktualizujemy informacje na niej. I chociaż Joomla jest łatwa w zarządzaniu, jest intuicyjna. Ale czy sam będziesz regularnie wykonywać niezbędne prace na stronie? Jak długo cię zajmą? Jeśli chcesz skoncentrować się na swoim biznesie, powierz nam obsługę swojej strony. Zrobimy wszystko, co w naszej mocy, aby strona była żywa i korzystna dla jej właściciela.
Jeśli jesteś organizacją handlową, która reklamuje lub sprzedaje swoje towary, usługi w Internecie, wystarczy wypromować swoją witrynę w wyszukiwarkach. W końcu, żeby coś sprzedać, trzeba przynajmniej być widzianym, by o tym wiedzieć. A my Ci w tym pomożemy, wypromujemy Twoją witrynę Joomla w wyszukiwarkach. W zależności od konkurencji i budżetu przeznaczonego na promocję, Twoja strona zajmie godną pozycję w wyniki wyszukiwania. Strona zwiększy Twoje zyski!

Serwery Debiana

Wiele firm prędzej czy później, dążąc do otwartości i przejrzystości swojego biznesu, staje przed koniecznością dbania o czystość licencjonowanych oprogramowanie. Jednak koszty opłat licencyjnych nie zawsze są akceptowalne, zwłaszcza dla małych i średnich przedsiębiorstw. Wyjściem z tej trudnej sytuacji jest decyzja o przejściu na technologię Open Source. Jednym z kierunków Open Source jest działanie System Linux(Linux). Pracownicy naszej firmy specjalizują się w systemie Debian Linux (Debian Linux). Jest to najstarsza i najbardziej stabilna dystrybucja system operacyjny Linuksa. Oferujemy Ci usługi w zakresie wdrożenia systemu Debian Linux w Twoim przedsiębiorstwie, konfiguracji, utrzymania i wsparcia serwerów.

Informacja i reklama

Ten artykuł dotyczy ustawień dostępu zdalnego dla Ubuntu Server. Zasada połączenia jest bardzo prosta: po stronie klienta korzystamy z programu do zdalnego dostępu (np. Putty), po stronie serwera instalujemy i konfigurujemy pakiet OpenSSH. Podczas nawiązywania połączenia klient przechodzi procedurę autoryzacji na serwerze i pomiędzy nimi nawiązywane jest szyfrowane połączenie. Bardziej szczegółowo zasada działania protokołu SSH została omówiona w artykule na temat.

Schemat sieci pokazano poniżej. Zdalne połączenie na serwer zostanie wykonany z komputera klienckiego.

Zainstalowaliśmy Ubuntu Server na pustym dysku twardym. Po instalacji należy skonfigurować interfejs sieciowy serwera, aby uzyskać dostęp do sieci. Mianowicie ustaw adres IP, maskę sieci, bramę domyślną. Jeśli Twój interfejs jest już skonfigurowany, możesz pominąć ten krok. Ustawienia interfejsu sieciowego są określone w pliku /etc/sieć/interfejsy. Użyj edytora tekstu do edycji nano.

Wchodzimy w tryb edycji pliku interfejsów. Interesuje nas wszystko poniżej # Podstawowy interfejs sieciowy. W ten moment serwer otrzymuje adres IP przez DHCP, co nie jest całkowicie poprawne. Serwer musi mieć statyczny adres IP, aby wszystkie węzły w sieci znały dokładnie jego adres. Zapiszmy ustawienia sieciowe ręcznie.

Mój serwer znajduje się w lokalnej podsieci 192.168.1.0/24. Serwerowi przypisany jest adres IP 192.168.1.2, maska ​​255.255.255.0, brama domyślna 192.168.1.1, adres serwera DNS 192.168.0.1

Aby zapisać plik, naciśnij Ctrl + X –> Y –> Enter. Aby zastosować ustawienia, musisz ponownie uruchomić proces sieciowy. Możesz także po prostu zrestartować serwer za pomocą polecenia sudo reboot.

sprawdź (polecenie ifconfig -a) – ustawienia zastosowane

Wszystko jest gotowe na OpenSS, który można zainstalować z terminala za pomocą poleceń

$ sudo apt-get install openssh-client

$ sudo apt-get install openssh-server

Możesz kontrolować uruchamianie, zatrzymywanie i restart serwera SSH za pomocą poleceń

$ sudo usługa cisza przestań | start | uruchom ponownie

W rzeczywistości masz już dostęp SSH do serwera. Ale po więcej strojenie plik konfiguracyjny znajduje się w /etc/ssh/sshd_config. Dostęp do konfiguracji odbywa się tylko spod roota.

Po stronie klienta pobieramy dowolny program do łączenia przez SSH, polecam Putty. Program będzie musiał tylko wpisać adres IP serwera i połączyć się z nim. Podczas łączenia wprowadź nazwę użytkownika i hasło.


Zapisz się do naszego

Dzięki MadKox

Przykład pliku konfiguracyjnego

# Konwencje: #
# Przez "domyślnie" rozumie się zachowanie sshd, gdy #
# do nieokreślonej dyrektywy. Warto zauważyć, że w Ubuntu #
# plik sshd_config zawiera już szereg ustawień, które #
# to domyślne ustawienia specjalnie dla Ubuntu. #
# Takie ustawienia są określone w tym pliku. #
# #

################ Ustawienia adresu/portu itp. ###########
############################################################
# #
## Port ############################################### #####
# #
# Port do użycia. Możesz określić kilka, na przykład: #
# Port 22 #
# Port 23 #
# Port 24 #
# Zaleca się użycie niestandardowego portu, ponieważ #
# standard jest często skanowany przez boty w poszukiwaniu #
# potencjalne "dziury". Można pominąć, jeśli podano #
# przez adres. Zobacz także parametr ListenAddress. #
# #
Port 8022
# #
## Adres słuchania ###########################################
# #
# Adres sieciowy, na którym serwer "nasłuchuje". Adres może być #
# napisz tak: #
# Adres nasłuchiwania hosta|IPv4_addr|IPv6_addr #
# Adres nasłuchiwania hosta|IPv4_addr:port #
# Adres nasłuchiwania: port #
# Jeśli port nie jest ustawiony, sshd będzie nasłuchiwał na tym adresie i #
# na porcie określonym w opcji Port. Jeśli będziesz #
# użyj ListenAddress bez określania portu, a następnie opcji #
# Port musi poprzedzać opcję ListenAddress. Jeśli nie #
# określ, a następnie domyślnie nasłuchuje na wszystkich lokalnych #
# adresów. Możesz podać wiele adresów. #
# #
## Rodzina Adresów ############################################
# #
# Określa, która rodzina adresów IP powinna być #
# używane sshd. Możliwe opcje: #
# „dowolny” dowolny #
# "inet" (tylko IPv4) #
# "inet6" (tylko IPv6) #
# Wartość domyślna to "dowolny". #
AdresRodzina inet
# #
## Używany DNS ############################################ # ##
# #
# Określa, czy sshd powinien sprawdzić nazwę hosta i #
# użyj tej nazwy, aby sprawdzić adres IP podany przez klienta z #
# odebrano z DNS. #

# #
############################################################
############## Ustawienia dostępu użytkownika ##############
############################################################
# #
# Pozwól/nie wpuszczaj użytkownika jest definiowany przez dyrektywy #
# DenyUsers, AllowUsers, DenyGroups i AllowGroups. #
# w tym samym czasie czek przechodzi od góry do dołu wzdłuż łańcucha: #
# ## Odmowa użytkownikom ## #
# || #
# ## Zezwól Użytkownikom ## #
# || #
# ## Zabronione grupy ## #
# || #
# ## Grupy Zezwól ## #
# Akceptowane są tylko nazwy użytkowników i grup, numeryczne #
# identyfikatory (identyfikator użytkownika) nie są rozpoznawane. Prawidłowy #
# nagrywanie wielu użytkowników/grup po kolei, przez #
# przestrzeń. Jeśli napisane jako użytkownik@host, to #
# użytkownik i host są sprawdzani osobno, co pozwala #
# ogranicz dostęp do niektórych użytkowników za pomocą #
# konkretnych hostów. Warto pamiętać, że dyrektywy #
# DenyUsers i AllowUsers przyjmują jako parametr #
# nazwa użytkownika oraz nazwa DenyGroups i AllowGroups #
# grup. Zobacz PATTERNS w man ssh_config po więcej #
# informacje o formach zapisywania nazw użytkowników i grup. #
# #
## Odmów użytkownikom ############################################
# #
# Lista UŻYTKOWNIKÓW, KTÓRE NIE POWINNY być używane przez sshd. #
# Wartość domyślna nie jest określona = nikt nie jest zbanowany. Tych. jeśli #
# użytkownik jest tutaj określony, dostęp zostanie odmówiony #
# do serwera ssh. #
# #
## AllowUsers #############################################
# #
# Lista UŻYTKOWNIKÓW, których sshd MOŻE używać, #

# określono co najmniej jednego użytkownika, dostęp ssh do serwera #
# jest dostępny tylko dla niego. #
# #
## Grupy odmów ###########################################
# #
# Lista GRUPY, KTÓRA NIE POWINNA być używana przez sshd. #
# Nie określono domyślnie = żadne grupy nie są zbanowane. #
# tj. jeśli określono co najmniej jedną grupę, to użytkownicy, #
# członkom tej grupy zostanie odmówiony dostęp do ssh #
# serwer. #
# #
## Grupy Zezwól #############################################
# #
# Lista GRUPY, której sshd MOŻE używać. #
# Domyślnie nie określone = każdy jest dozwolony. Tych. jeśli #
# określono co najmniej jedną grupę, wtedy tylko ci użytkownicy#
# które zawiera, będzie miał dostęp do serwera ssh.#
# #
############################################################
######### Opcje wykrywania stanu połączenia ###########
############################################################
# #
## TCPKeepAlive #########################################
# #
# Wskazuje, czy system powinien wysyłać komunikaty TCP do klienta #
# do utrzymania połączenia. Jeśli wyślesz te pakiety,#
# możesz zdefiniować przerwanie połączenia. Jest to jednak również #
# oznacza, że ​​połączenie można zakończyć, jeśli #
# chwilowa przerwa w routingu oraz #
# Niektórzy uważają to za bardzo irytujące. Z drugiej strony, jeśli #
# sesje na serwerze nie mogą wysyłać takich wiadomości #
# ostatni w nieskończoność, spawnujący użytkowników "duchów",#
# i pożeranie zasobów serwera. Wartość domyślna „tak”, #
# tj. wysyłać takie wiadomości. Aby wyłączyć wysyłanie #
# takich wiadomości powinno być ustawione na „nie”. Poprzednio to #
# opcja nazywała się KeepAlive. Warto zauważyć, że #
# istnieją bezpieczniejsze sposoby sprawdzania statusu #
# połączeń (patrz poniżej). #
# #
TCPKeepAlive tak
# #
## ClientAliveCountMax #####################################
# #
# Ustawia liczbę wiadomości do klientów, którzy sshd #
# wysyła kolejno bez otrzymywania odpowiedzi od #
# klient. Jeśli próg zostanie osiągnięty i #
# klient nigdy nie odpowiedział sshd rozłączy klienta przerywając #
# sesja ssh. Warto zauważyć, że korzystanie z takich #
# wiadomości zasadniczo różni się od dyrektywy TCPKeepAlive. #
# Wiadomości do/od klientów są przesyłane zaszyfrowanymi #
# kanał i dlatego nie są fałszowane. Te same wiadomości #
# TCPKeepAlive jest sfałszowany. Klient mechanizmu żyje#
# szczególnie cenne w przypadkach, gdy serwer i klient muszą #
# wiedzieć, kiedy połączenie stało się nieaktywne. Domyślna #
# wartość to 3. W przypadku ClientAliveInterval #
# jest ustawione na
5 i ClientAliveCountMax pozostawione przez #
# domyślnie nieodpowiadający klienci zostaną rozłączeni około #
# po 45 sekundach. Ta dyrektywa działa tylko dla #
# protokół ssh2. #
# #
## ClientAliveInterval #####################################
# #
# Ustawia interwał czasu w sekundach. Jeśli w ciągu #
# w tym przedziale nie było komunikacji z klientem, sshd #
# wysyła wiadomość zaszyfrowanym kanałem, #
# prośba o odpowiedź od klienta. Wartość domyślna to 0, tj. #
# nie wysyłaj takich wiadomości. Ta dyrektywa działa #
# tylko dla protokołu ssh2. #
# #
############################################################
################ Ogólne opcje uwierzytelniania ################
############################################################
# #
## AuthorizedKeysFile ######################################
# #
# Określa plik zawierający klucze publiczne, #
# używane do uwierzytelniania użytkowników. Dyrektywa nr
# może zawierać znaczniki postaci %M, które są podstawione w #
# proces nawiązywania połączenia. #
# Zdefiniowano następujące znaczniki: #




# W związku z tym plik klucza można określić jako #
# ścieżka bezwzględna (tj. jeden wspólny plik z kluczami) i #
# dynamicznie w zależności od użytkownika (tj. według #
# plik na użytkownika). #
# Domyślnie jest to „.ssh/authorized_keys”. #
# Przykład pliku klucza w katalogu domowym użytkownika: #
# AuthorizedKeysFile %h/.ssh/authorized_key #
# Przykład dla pliku ogólnego: #
# AuthorizedKeysFile /etc/ssh/authorized_keys #
# Zobacz opis pliku Author_keys, aby uzyskać więcej informacji #
# Informacja. #
# #
## Uwierzytelnianie ChallengeResponse ##########################
# #
# Wskazuje, czy zezwolić na uwierzytelnianie typu pytanie i odpowiedź #
# (uwierzytelnianie odpowiedzi na wyzwanie). Wszystkie obsługiwane #
# typy uwierzytelniania z login.conf Domyślne „tak”, #
# tj. umożliwić. #
# Wyłączone w Ubuntu ze względów bezpieczeństwa. #
# #
WyzwanieOdpowiedź Numer uwierzytelnienia
# #
## HostbasedUsesNameFromPacketOnly ##########################
# #
# Określa, w jaki sposób serwer powinien uzyskać nazwę hosta klienta #
# ze schematem uwierzytelniania opartym na weryfikacji hosta. #
# Jeśli ustawione na "tak" podczas sprawdzania spójności plików #
# ~/.shosts, ~/.rhosts lub /etc/hosts.equiv sshd będzie #
# użyj nazwy hosta dostarczonej przez klienta. #
# (wykonywanie odwrotnego rozpoznawania DNS) Jeśli ustawione na "nie"#
# sshd rozwiąże nazwę z samego połączenia TCP. #
# Domyślnie "nie". #
# #
## Ignoruj ​​hosty #########################################
# #
# Wyłącza używanie plików .rhosts i .shosts #
# podczas uwierzytelniania opartego na hoście. #

# Pliki /etc/hosts.equiv i /etc/ssh/shosts.equiv są nadal #
# są używane. #
# Domyślnie "tak". #
# #
Ignoruj ​​hosty tak
# #
## Ignoruj ​​UserKnownHosts ###################################
# #
# Określa, czy sshd powinien ignorować nazwy użytkowników #
# plik "znane hosty" ~/.ssh/known_hosts w toku #
# uwierzytelnianie na podstawie weryfikacji hosta #
# (RhostsRSAAuthentication lub HostbasedAuthentication). #
# Domyślnie "nie". #
# #
## PermitBlacklistedKeys ###################################
# #
# Wskazuje, czy sshd powinien akceptować klucze wymienione w #
# na czarnej liście jako przejęte (znane przejęte #
# klucze (patrz ssh-vulnkey)). Jeśli ustawione na "tak" #
# próby uwierzytelnienia za pomocą takich kluczy będą logowane #
# zarejestruj i zaakceptuj, jeśli wartość to „nie” prób #
# uwierzytelnienia zostaną odrzucone. #
# Domyślnie "nie". #
# #
## PermitEmptyPasswords ####################################
# #
# Jeśli włączone jest uwierzytelnianie hasłem, #
# wskazuje, czy możliwe jest logowanie przy użyciu pustego hasła. #
# Domyślnie "nie". #
# #
Zezwól na pusteHasła nie
# #
## PermitRootLogin #######################################
# #
# Wskazuje, czy logowanie ssh jako superużytkownik jest dozwolone #
# (źródło). Może przyjmować wartości: #
# "tak" superużytkownik może się zalogować. Dotyczy #
# aktualny globalny schemat uwierzytelniania. #
# #
# superużytkownik "bez hasła" może się zalogować. #
# Uwierzytelnianie hasła dla niego zostanie wyłączone. #
# #
# superużytkownik „tylko polecenia wymuszone” będzie mógł się zalogować, #
# przy użyciu uwierzytelniania klucza publicznego i #
# tylko wtedy, gdy przekazuje polecenie do wykonania. #
# Jest to przydatne do tworzenia kopii zapasowych, #
# nawet gdy normalnie (tzn. nie przez ssh) #
# odmowa logowania superużytkownika. Wszystkie inne metody #
# Uwierzytelnianie dla superużytkownika zostanie wyłączone.#
# #
# superużytkownik „nie” nie może używać ssh dla #
# Zaloguj sie. #
# #
# Domyślna wartość to "tak". #
# #
PermitRootZaloguj się nie
# #
## Protokół ############################################### #
# #
# Określa, którego protokołu ma używać sshd. #
# Możliwa wartość'1' i '2' ssh1 i ssh2 #
# odpowiednio. Możliwe jest jednoczesne nagrywanie, z #
# które należy oddzielić przecinkami. #
# Domyślnie jest to „2.1”. #
# Zwróć uwagę, że kolejność protokołu w #
# wpis nie ustawia priorytetu, ponieważ klient wybiera, które #
# z kilku protokołów oferowanych mu przez serwer #
# użyj. Notacja "2,1" jest dokładnie taka sama #
# rekordy "1,2". #
# #
Protokół 2
# #
## UżyjPAM ############################################ # ##
# #
# Włącza interfejs PAM (Pluggable Authentication Module) #
# interfejs). Jeśli ustawiono na „tak” dla wszystkich typów #
# uwierzytelnianie oprócz przetwarzania sesji i modułu konta #
# PAM użyje uwierzytelniania opartego na #
# żądanie-odpowiedź (ChallengeResponseAuthentication i #
# Uwierzytelnianie hasła) uwierzytelnianie #
# żądanie-odpowiedź w PAM zwykle pełni tę samą rolę co #
# tak samo jak uwierzytelnianie hasłem, należy wyłączyć #
# Uwierzytelnianie hasłem lub #
# Uwierzytelnianie typu ChallengeResponse. Warto zauważyć, że #
# jeśli włączona jest dyrektywa UsePAM, nie będzie można uruchomić #
# sshd jako użytkownik inny niż root. #
# Domyślną wartością jest "nie". #
# #
Użyj PAM tak
# #
## Uwierzytelnianie hasłem ##################################
# #
# Wskazuje, czy uwierzytelnianie jest dozwolone za pomocą #
# hasło. #
# Domyślnie "tak". #
# #
Uwierzytelnianie hasłem tak
#
## HostKey ############################################## # #
# #
# Określa plik zawierający klucz prywatny hosta, #
# SSH do użycia. Domyślny /etc/ssh/ssh_host_key #
# dla protokołu ssh
i /etc/ssh/ssh_host_rsa_key i #
# /etc/ssh/ssh_host_dsa_key dla protokołu ssh2. Koszty #
# zauważ, że sshd nie użyje tego pliku, #
# który jest dostępny dla każdego innego niż użytkownik. Mogą #
# używaj wielu plików z kluczami, kluczami "rsa1" #
# dla protokołu ssh1 i „dsa”/„rsa” dla protokołu ssh2. #
# #
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
# #
############################################################
########## Opcje protokołu SSH w wersji 1 (ssh1) #############
############################################################
# Zdecydowanie NIE ZALECA SIĘ używania protokołu ssh1.#
# Protokół ssh2 jest znacznie bezpieczniejszy niż ssh1 #
############################################################
# #
## Interwał regeneracji klucza ##################################
# #
# Dla protokołu ssh1 raz w określonym czasie #
# nowy tymczasowy klucz serwera jest generowany automatycznie #
# (jeśli był używany). To jest dla #
# zapobiec odszyfrowaniu przechwyconych sesji, aby #
# później zaloguj się z parametrami tych sesji do maszyny i #
# ukradnij klucze. Ten klucz nie jest nigdzie przechowywany (przechowywany w #
# pamięć o dostępie swobodnym). Ta dyrektywa określa okres #
# "żywotność" klucza w sekundach, po czym będzie #
# zregenerowane. Jeśli wartość jest ustawiona na 0 #
# klucz nie zostanie zregenerowany. #
# Wartość domyślna to 3600 (sekund). #
# #
Interwał regeneracji klucza 3600
# #
## Uwierzytelnianie RhostsRSAA #################################
# #
# Wskazuje, czy potrzebne jest uwierzytelnianie oparte na plikach #
# rhosts lub /etc/hosts.equiv wraz z udanym #
# uwierzytelnianie hosta przez RSA. #

# Domyślnie "nie". #
# #
Numer uwierzytelniania RhostsRSAA
# #
## Uwierzytelnianie RSAA #######################################
# #
# Wskazuje, czy dozwolone jest „czyste” uwierzytelnianie RSA. #
# Dotyczy tylko protokołu ssh1. #
# Domyślnie "tak". #
# #
Numer uwierzytelniania RSAA
# #
## bity klucza serwera ##########################################
# #
# Określa liczbę bitów w tymczasowym kluczu serwera dla #
# protokół ssh1. Minimalna wartość 512. #
# Wartość domyślna to 1024. #
ServerKeyBity 1024
# #
############################################################
########### Opcje protokołu SSH w wersji 2 (ssh2) ############
############################################################
# #
## Szyfry ############################################ # #
# #
# Określa algorytmy szyfrowania dozwolone dla #
# protokół ssh2. Kilka algorytmów powinno być #
# Oddzielone przecinkami. Obsługiwane algorytmy: #
# „3des-cbc”, „aes128-cbc”, „aes192-cbc”, „aes256-cbc”, #
# „aes128-ctr”, „aes192-ctr”, „aes256-ctr”, „arcfour128”, #
# "arcfour256", "arcfour", "blowfish-cbc", "cast128-cbc". #

# aes128-cbc,3des-cbc,rozdymka-cbc,cast128-cbc,arcfour128, #
# arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, #
# aes192-ctr, aes256-ctr #
# #
## Uwierzytelnianie oparte na hoście #################################
# #
# Wskazuje, czy uwierzytelnianie na podstawie # jest dozwolone
# sprawdzanie hosta. Sprawdzanie rhostów lub /etc/hosts.equiv, #
# a jeśli się powiedzie, połącz z pomyślną walidacją #
# klucz publiczny, dostęp jest dozwolony. Ta dyrektywa #
# jest taka sama jak dyrektywa RhostsRSAAuthentication i #
# ważne tylko dla protokołu ssh2. #
# Domyślnie "nie". #
# #
Uwierzytelnianie oparte na hoście nie
# #
## MAC ############################################ # ####
# #
# Wskazuje poprawny algorytm MAC (komunikat #
# Kod weryfikacyjny). Zastosowany algorytm MAC #
# ssh2 do ochrony integralności danych. Kilka #
Liczba algorytmów musi być oddzielona przecinkami. #
# Wartości domyślne to: #
# hmac-md5,hmac-sha1, [e-mail chroniony],hmac-ripemd160, #
# hmac-sha1-96,hmac-md5-96 #
# #
## PubkeyAuthentication ####################################
# #
# Wskazuje, czy uwierzytelnianie jest dozwolone na podstawie #
# klucz publiczny. Dotyczy tylko protokołu ssh2. #
# Domyślnie "tak". #
# #
PubkeyAuthentication tak
############################################################
#################### Opcje GSSAPI ##########################
############################################################
# #
############# Dotyczy tylko protokołu ssh2 ###########
# #
## Uwierzytelnianie GSSAPI ###################################
# #
# Wskazuje, czy uwierzytelnianie użytkownika jest dozwolone na #
# na podstawie GSSAPI. Wartość domyślna to „nie”, tj. zabroniony. #
# #
## GSSAPIKeyExchange #######################################
# #
# Wskazuje, czy wymiana kluczy na podstawie # jest dozwolona
#GSSAPI. Wymiana kluczy GSSAPI nie opiera się na #
# klucze ssh podczas weryfikacji tożsamości hosta. #
# Domyślne "nie" tj. wymiana jest zabroniona. #
# #
## GSSAPICleanupCredentials ################################
# #
# Wskazuje, czy automatycznie niszczyć #
# niestandardowa pamięć podręczna danych uwierzytelniających, gdy #
# zakończ sesję. #
# Domyślne "tak" tj. muszą zostać zniszczone. #
# #
## GSSAPIStrictAcceptorCheck ###############################
# #
# Wskazuje, jak surowa powinna być kontrola #
# tożsamość klienta podczas uwierzytelniania przez GSSAPI. #
# Wartość "yes" powoduje, że klient uwierzytelnia się w #
# usługa hosta odbierającego na bieżącym hoście. Znaczenie „nie” #
# pozwala klientowi na uwierzytelnienie za pomocą dowolnego #
# klucza usług. #
# Domyślna wartość to "tak". #
# Zauważ, że ustawienie wartości na "nie" może #
# działa tylko z rzadkimi bibliotekami Kerberos GSSAPI. #
# #
############################################################
################### Opcje Kerberos #########################
############################################################
# #
## Uwierzytelnianie Kerberos ##################################
# #
# Wskazuje, czy podane hasło # wymaga
# użytkownik do uwierzytelnienia #
# (PasswordAuthentication) walidacje w Kerberos KDC. #
# Aby skorzystać z tej opcji, serwer potrzebuje #
# upewnij się, że KDC jest prawdziwe. (Serwer potrzebuje #
# Kerberos servtab, który umożliwia weryfikację #
# Tożsamość KDC) #
# Domyślnie "nie". #
# #
## KerberosGetAFSToken ###################################
# #
# Jeśli AFS jest aktywny, a użytkownik otrzymał bilet Kerberos 5 TGT, #
# czy próbować uzyskać token AFS przed użytkownikiem #
# uzyska dostęp do swojego folderu domowego. #
# Domyślnie "nie". #
# #
## KerberosOrLocalPasswd #################################
# #
# Określa, co zrobić, jeśli uwierzytelnianie #
# nie powiodło się przez Kerberos. Jeśli #
# wartość = "tak" hasło zostanie zweryfikowane za pomocą #
# dowolny dodatkowy lokalny mechanizm autoryzacji, #
# na przykład /etc/passwd. #
# Domyślnie "tak". #
# #
## KerberosTicketCleanup ###################################
# #
# Określa, czy automatycznie niszczyć plik za pomocą #
# pamięć podręczna biletów użytkownika po zakończeniu sesji. #
# Domyślnie "tak". #
# #
############################################################
################# Opcje przekierowania ####################
############################################################
# #
## AllowAgentForwarding ####################################
# #
# Określa, czy zezwolić, czy odmówić przekierowania #
# ssh-agent"a. Wartość domyślna to „tak”, czyli zezwalaj. #
# Pamiętaj, że wyłączenie przekierowań nie #
# zwiększ bezpieczeństwo do czasu, aż użytkownicy również #
# dostęp do powłoki jest zabroniony, ponieważ zawsze mogą ustawić #
# własnych odpowiedników agentów. #
# #
AllowAgentForwarding nie
# #
## AllowTcpForwarding #####################################
# #
# Określa, czy zezwolić, czy wyłączyć przekierowywanie TCP. #
# Wartość domyślna to „tak”, tj. umożliwić. To jest warte zanotowania, #
# co jak w przypadku AllowAgentForwarding wyłącz #
# przekierowań nie zwiększy bezpieczeństwa, chyba że #
# użytkownicy będą mieli dostęp do konsoli, ponieważ mogą #
# zainstaluj swoje odpowiedniki. #
# #
# #
Zezwól na przekazywanie Tcp nie
# #
## Porty bramy #############################################
# #
# Określa, czy zezwolić hostom zdalnym na dostęp do #
# przekazanych portów. Domyślnie sshd nasłuchuje #
# połączenia tylko z przekierowanymi portami na lokalnym hoście #
# interfejs (pętla zwrotna). Nie daje innego pilota #
# hostów łączy się z przekierowanymi portami. Mogą #
# użyj GatewayPorts, aby zezwolić na to sshd #
# robić. Dyrektywa może przyjmować 3 wartości: #
# Tylko pętla zwrotna "nie". #
# "tak" - dowolne adresy. #
# "określone przez klienta" adresy podane przez klienta. #
# #
Porty bramy nie
# #
## ZezwólOpen ############################################
# #
# Określa, gdzie dozwolone jest przekazywanie portów TCP. #
# Podpowiedź o przekierowaniu musi zawierać jeden z #
# z następujących form: #
# PermitOpen host: port #
# Zezwól na otwarcie IPv4_addr:port #
# Zezwolenie na otwarcie :port #
# Wiele wpisów można określić, oddzielając je spacjami. #
# Argument „dowolny” może być użyty do usunięcia wszystkich #
# zakazy przekierowania portów. Wartość domyślna to dowolna #
# dozwolone przekierowanie. #
# #
## PermitTunnel ##########################################
# #
# Wskazuje, czy dozwolone jest przekierowanie urządzenia tun. #
# Może przyjmować wartości: #
# "tak" #
# „od punktu do punktu” (3. Warstwa sieci) #
# „ethernet” (druga warstwa sieci) #
# "nie" #
# Wartość "tak" pozwala na "od punktu do punktu" w tym samym czasie #
# i "ethernet". Wartość domyślna to „nie”. #
# #
############################################################
################## Opcje logowania ####################
############################################################
# #
## SyslogFacility ########################################
# #
# Określa kod obiektu dziennika do zapisywania komunikatów do #
# syslog z sshd. Możliwa wartość: #
#DAEMON#
#UŻYTKOWNIK#
#AUTH#
#LOKAL0#
#LOKALNIE1#
#LOKALNIE2#
#LOKALNIE3#
#LOKALNIE4#
#LOKALNIE5#
#LOKALNE6#
#LOKALNE7#
# Wartość domyślna to AUTH. #
# #
SyslogFacility AUTH
# #
## LogLevel ############################################ #
# #
# Ustawia poziom szczegółowości dziennika sshd. #
# Możliwe opcje: #
#CICHY#
#CICHY#
#FATALNY#
# BŁĄD #
#INFO#
#GADATLIWY#
#ODPLUSKWIĆ#
#DEBUGOWANIE1#
#DEBUGOWANIE2#
#DEBUGOWANIE3#
# Domyślnie jest to INFO. #
# DEBUGUJ i DEBUGUJ
są sobie równoważne. #
# DEBUG2 i DEBUG3 ustawiają najwyższe poziomy debugowania #
# wyjście. Logowanie z poziomem DEBUG grozi #
# prywatność użytkownika i nie jest zalecane. #
# #
Informacje o poziomie dziennika
# #
############################################################
#################### Przekieruj X

####################
############################################################
# #
## X11Forwarding #########################################
# #
# Wskazuje, czy dozwolone jest przekierowanie graficzne #
# Podsystemy X11. Może przyjmować wartości „tak” lub „nie”. #
# Domyślnie "nie". #
# Uwaga umożliwiająca proste przekierowanie X11 #
# duże ryzyko zarówno dla serwera jak i klientów, ponieważ w #
# w przypadku takiego przekierowania proxy wyświetla sshd #
# akceptuje połączenia z dowolnego adresu. Posługiwać się #
# dyrektywa X11UseLocalhost, aby ograniczyć dostęp do #
# do serwera przekierowań "x". Warto zauważyć, że #
# wyłączenie przekierowania nie gwarantuje, że #
# użytkownicy nie będą mogli przekierować X11, ponieważ mając #
# dostęp do konsoli zawsze ustawiają swój własny #
# readresator. Przekierowanie X11 będzie #
# automatycznie wyłączone, jeśli włączone #
# Dyrektywa UseLogin. #
# #
X11 Przekazywanie nie
# #
## X11UseLocalhost #######################################
# #
# Wskazuje, czy sshd powinien ograniczać zakres #
# przekieruj X11 na lokalny adres pętli zwrotnej lub #
# powinno zezwalać na dowolne adresy. Domyślny sshd #
# "umieszcza" serwer przekierowujący X11 na lokalny adres #
# i ustawia część zmiennej środowiskowej DISPLAY odpowiadającą #
# dla nazwy hosta jako "localhost". Warto zauważyć, że #
# niektóre stare klienty X11 mogą nie działać z tymi #
# ustawienia. Wartość domyślna to „tak”, tj. przekierowanie #
# ograniczone do lokalnego hosta, "nie" wyłącza #
# ograniczenia. #
# #
## XAuthLocation ##########################################
# #
# Określa pełną ścieżkę do programu xauth. #
# Domyślny /usr/bin/X11/xauth. #
# #
## X11DisplayOffset ########################################
# #
# Określa numer pierwszego wyświetlacza dostępnego do sshd w #
# jako przekierowanie X11. Odbywa się to w celu #
# aby przekierowane x nie przecinały się z #
# prawdziwy. Wartość domyślna to 10. #
# #
X11Przesunięcie wyświetlacza10
# #
############################################################
################### Różne opcje ########################
############################################################
# #
## LoginGraceTime ##########################################
# #
# Czas, po którym serwer się rozłącza #
# użytkowników, jeśli nie byli w stanie zadowalająco #
# Zaloguj sie. Wartość 0 pozwala użytkownikowi na #
# logowanie na czas nieokreślony. Wartość domyślna to 120 (sekund). #
# #
ZalogujGraceTime 120
# #
## MaxAuthTries #########################################
# #
# Określa maksymalną liczbę prób uwierzytelnienia, #
# dozwolone na połączenie. #
# Jak tylko liczba nieudanych prób przekroczy połowę #
# podana wartość, wszystkie kolejne próby będą #
# być zalogowanym. Wartość domyślna to 6. #
# #
Próby MaxAuth 4
# #
## Sesje maksymalne ##########################################
# #
# Określa maksymalną liczbę jednoczesnych połączeń #
# dla każdego połączenia sieciowego. Wartość domyślna to 10. #
# #
Maksymalna liczba sesji1
# #
## MaxStartups ##########################################
# #
# Określa maksymalną liczbę jednoczesnych #
# nieautoryzowane połączenia z sshd. Jeśli #
# liczba połączeń przekroczy limit wszystkie dodatkowe #
# połączenia zostaną zresetowane do bieżącego #
# połączenia nie zostaną zakończone lub pomyślna autoryzacja, #
# lub wygaśnięcie okresu czasu określonego w dyrektywie #
# LoginGraceTime. Wartość domyślna to 10. #
# Dodatkowo możesz ustawić wczesne resetowanie połączenia, #
# podanie jako parametru trzech wartości oddzielonych #
# dwukropek „start:rate:full” (na przykład: „10:30:60”). #
# sshd odrzuci próbę połączenia z prawdopodobieństwem równym #
# „stawka/100” (tj. 30% w naszym przykładzie), jeśli już #
# jest „start” (10) nieautoryzowanych połączeń. #
# Prawdopodobieństwo rośnie liniowo i wszelkie próby #
# połączenia zostaną odrzucone, jeśli liczba nieautoryzowanych #
Liczba połączeń osiągnie „pełne” (60). #
# #
## Kompresja ##############################################
# #
# Wskazuje, czy kompresja danych jest włączona. Może #
# kompresja "tak" jest dozwolona. #
# "opóźniona" kompresja jest opóźniona do #
# użytkownik nie został pomyślnie uwierzytelniony. #
# kompresja "nie" wyłączona. #
# Domyślnie jest to "opóźnione". #
# #
## UżyjLogin ############################################ #
# #
# Wskazuje, czy logowanie powinno być używane do #
# sesja interaktywna. Wartość domyślna to „nie”. #
# Zauważ, że login nigdy nie był używany przez #
# wykonuj zdalne polecenia. Pamiętaj też, że #
# użycie loginu uniemożliwi korzystanie z #
# Dyrektywy X11Forwarding, ponieważ logowanie nie wie co #
# powinien zrobić z xauth. Jeśli dyrektywa # jest uwzględniona
# UsePrivilegeSeparation zostanie wyłączone po #
# autoryzacja. #
# #
## UsePrivilegeSeparation ##################################
# #
# Określa, czy sshd powinien współdzielić uprawnienia. Jeśli tak #
# wtedy jako pierwsze zostanie utworzone nieuprzywilejowane dziecko #
# proces dla przychodzącego ruchu sieciowego. Po udanym #
# autoryzacja utworzy kolejny proces z uprawnieniami #
# zalogowanego użytkownika. Główny cel separacji #
# uprawnienia do zapobiegania naruszeniom dostępu. #
# Domyślna wartość to "tak". #
# #
UsePrivilegeSeparation tak
# #
## Tryby ścisłe ##########################################
# #
# Określa, czy sshd powinien sprawdzać tryby dostępu i #
# własność folderów i plików użytkowników przed #
# pozwól użytkownikowi się zalogować. Dzieje się tak zwykle dlatego, że #
# nowicjusze często sprawiają, że ich pliki są zapisywalne #
# wszystko z rzędu.Domyślnie jest to „tak”. #
# #
Tryby ścisłe tak
# #
## AkceptujEnv ############################################
# #
# Wskazuje, które zmienne środowiskowe są przekazywane #
# zostanie zaakceptowany przez klienta. Zobacz opcję SendEnv w kliencie. #
# Należy zauważyć, że przekazywanie zmiennych jest możliwe tylko #
# dla protokołu ssh2. Zmienne są określone według nazwy, #
Można użyć # symboli wieloznacznych ('*' i '?'). Możesz określić #
# wiele zmiennych oddzielonych spacją lub podzielonych na #
# wiele linii AcceptEnv. Uważaj na niektóre #
# zmienne środowiskowe mogą być użyte do ominięcia #
# zabronione środowiska użytkownika. Użyj tego #
# dyrektywy ostrożnie. Brak domyślnie #
# zmienne środowiskowe zdefiniowane przez użytkownika nie są akceptowane. #
# #
AkceptujEnv LANG LC_*
# #
## PermitUserEnvironment ###################################
# #
# Wskazuje, czy sshd powinien akceptować #
# ~/.ssh/environment i opcja environment= w #
# ~/.ssh/authorized_keys. Wartość domyślna to „nie”. Koszty #
# zauważ, że pozwolenie na przetwarzanie środowiska może dać #
# użytkowników możliwość ominięcia ograniczeń w niektórych #
# konfiguracje wykorzystujące mechanizmy takie jak #
# LD_PRELOAD. #
# #
# #
## PidFile ############################################ # #
# #
# Określa plik zawierający identyfikator procesu #
# (identyfikator procesu, PID) demona SSH. #
# Domyślny /var/run/sshd.pid #
# #
# #
## PrintLastLog ##########################################
# #
# Określa, czy sshd ma wyświetlać datę i godzinę #
# ostatnia sesja, gdy użytkownik jest interaktywnie zalogowany. #
# Domyślnie "tak". #
# #
DrukujLastLog tak
# #
## PrintMotd ############################################
# #
# Określa, czy sshd ma drukować /etc/motd #
# gdy użytkownik jest interaktywnie zalogowany. Na niektórych #
# systemy (np. Ubuntu) ta informacja jest również #
# wydrukowane na ekranie przez powłokę. #
# Domyślna wartość to "tak". #
# #
PrintMotd nie
# #
## Baner ############################################### ###
# #
# Wskazuje, który plik zawiera baner tekstowy, który #
# zostanie wyświetlony użytkownikowi PRZED procedurą #
# uwierzytelnianie. Opcja dostępna tylko dla protokołu ssh2.#
# Domyślnie nic nie pokazuje. #
# W Ubuntu, issue.net zawiera frazę Ubuntu (wersja), #
# na przykład dla karmicznej jest to "Ubuntu 9.10". Mogą #
# używane do dezorientacji potencjalnych napastników, #
# pisząc tam na przykład "Mój router internetowy D-Link" =) #
# #
Baner /etc/issue.net
# #
## ChrootDirectory #######################################
# #
# Jeśli określono, zapewnia ścieżkę, która będzie #
# chrootowane po uwierzytelnieniu. Ścieżka i to wszystko #
# treści muszą odpowiadać tym, których właścicielem jest #
# foldery superużytkownika i niedostępne dla #
# posty innych użytkowników. #
# Ścieżka może zawierać etykiety, które są podstawione w #
# proces uwierzytelniania: #
# %% jest zastępowane dosłownym "%" #
# %h jest zastępowany katalogiem domowym #
# uwierzytelnianie użytkownika #
# %u jest zastępowane nazwą uwierzytelnianego użytkownika #
# folder chroot powinien zawierać wszystkie niezbędne pliki i #
# folderów dla sesji użytkownika. Dla interaktywnych #
# sesje potrzebne co najmniej: #
# powłoka, zwykle sh #
# podstawowe urządzenia w /dev, takie jak: #
# null, zero, stdin, stdout, stderr, arandom i tty #
# dla sesji danych przy użyciu sftp none #
# zaawansowane ustawienia nie jest potrzebne, jeśli użyto #
# wewnętrzny proces serwera sftp. Zobacz podsystem dla #
# więcej informacji. Domyślnie chroot nie jest wykonywany. #
# #
## ForceCommand ##########################################
# #
# Powoduje wykonanie podanego polecenia. Ignoruje #
# dowolne polecenia wydane przez klienta lub napisane do #
# ~/.ssh/rc. Komenda jest wywoływana przez użytkownika #
# powłoki z opcją -c. Nadaje się do wystrzeliwania pocisków, #
# poleceń lub podsystemów. Najbardziej przydatne w bloku #
# mecz. Komenda oryginalnie wysłana przez klienta jest przechowywana #
# w zmiennej środowiskowej SSH_ORIGINAL_COMMAND. Jeśli #
# podaj polecenie "internal-sftp", uruchomi #
# wewnętrzny serwer sftp, który nie wymaga dodatkowych #
# pliki i foldery opisane w dyrektywie ChrootDirectory. #
# #
## Podsystem ##############################################
# #
# Definiuje i konfiguruje podsystem zewnętrzny (np. #
# demon transferu plik demon transferu). #
# Argumenty to nazwa i polecenie (z opcjonalnym #
# argumentów), które zostaną wykonane podczas żądania #
# do podsystemów. Polecenie sftp-server uruchamia "sftp" #
# podsystem przesyłania plików. Dodatkowo możesz określić #
# jako podsystem "internal-sftp", który będzie działał #
# wewnętrzny serwer sftp. To może znacznie uprościć #
# ustawienie w przypadku użycia dyrektywy #
# ChrootDirectory Domyślnie brak podsystemów #
# nie wywołane. Dotyczy tylko protokołu ssh2. #
# #
#Podsystem sftp /usr/lib/openssh/sftp-server #
# #
############################################################
##################### Dopasuj blok ###########################
############################################################
# #
# Specjalnie przeniesiony na koniec pliku, aby był wygodniejszy #
# napisz zasady meczu. #
#Szalony Koks. #
# #
# Dyrektywa Match jest początkiem warunku #
# blok. Jeśli wszystkie kryteria określone w wierszu # są spełnione
# Dopasowanie, wykonywane są dyrektywy w kolejnych wierszach bloku,#
# pozwalające na ominięcie wartości globalnych dyrektyw pliku #
# sshd_config dla przypadku będącego kryterium dyrektywy #
# mecz. Wszystkie wiersze po wierszu # są uważane za bloki.
# z kryterium (linia dopasowania) do następnej linii dopasowania #
# lub do końca pliku. Dopasuj argument dyrektywy jeden lub #
# wiele par wpisów kryteriów. Możliwe typy rekordów: #
#Użytkownik#
#Grupa#
#Gospodarz#
#Adres zamieszkania#
# Rekordy mogą zawierać zarówno pojedyncze wartości #
# (np. Użytkownik=użytkownik) i wiele wartości, #
# oddzielone przecinkami (User=user1,user2). Mogą również #
# używać wyrażeń regularnych opisanych w #
# Sekcja PATTERNS w ssh_config. Wpisy w kryteriach nr
# Adres może zawierać adresy w notacji CIDR #
# (Długość adresu/maski, np. „192.0.2.0/24” lub #
# "3ffe:ffff::/32"). Warto zauważyć, że prezentowane #
# długość maski musi odpowiadać adresowi, a także #
# długie/krótkie adresy nie będą działać. #
# Dyrektywy dopasowania mogą używać tylko #
# określony zestaw dyrektyw: #
# Zezwalaj na przekazywanie Tcp #
#Transparent#
#ChrootDirectory#
#Wymuś polecenie#
#Porty bramy#
# Uwierzytelnianie GSSAPI #
# Uwierzytelnianie na hoście #
#KbdInteraktywne uwierzytelnianie#
#Uwierzytelnianie Kerberos#
#Maksymalna liczba prób#
#Maksymalne sesje#
#Uwierzytelnianie hasła#
# Zezwolenie Otwarte #
# Zezwól RootZaloguj #
#RhostsRSAAuwierzytelnianie#
# Uwierzytelnianie RSAA #
#X11Przesunięcie wyświetlania#
#X11Przekazywanie#
#X11UżyjLokalnegoHost#

Natychmiast mała uwaga do konfiguracji, wyłącza możliwość logowania przez ssh jako użytkownik root, więc jeśli " amator"Zmień ustawienie PermitRootLogin na tak

Aby skopiować powyższą konfigurację na swoją maszynę uniksową
Przejdź do katalogu, w którym przechowywany jest plik konfiguracyjny sshd_config

CD Sudo /etc/ssh

Skoro wykonaliśmy kopię zapasową pliku sshd_config, usuniemy go

sudo rm sshd_config

Nadal w katalogu /etc/ssh skopiuj powyższy plik konfiguracyjny ssh ze strony itautsors,

sudo wget http://website/sshd_config

Uruchom ponownie demona

restart ssh usługi sudo

Upewnij się, że demon SSH jest uruchomiony

Ps-A | grep sshd

Zobaczymy coś takiego.

<какой то номер>? 00:00:00

Jeśli nie ma linii, demon SSH nie działa,

Sprawdź, czy połączenia przychodzące nasłuchują:

Sudo ss -lnp | grep sshd

W odpowiedzi otrzymujemy

0 128:::22:::* użytkownicy:(("sshd",16893,4)) 0 128 *:22 *:* użytkownicy:(("sshd",16893,3))

Jeśli jest więcej niż jedna linia, to demon SSH nasłuchuje na więcej niż jednym porcie, jeśli nie na jednym, musisz określić co najmniej jeden port, w obu przypadkach musisz wrócić i edytować plik konfiguracyjny

Spróbujmy się zalogować za pomocą lokalny komputer(czyli idziemy z tego samego peceta, na którym ustawiliśmy serwer ssh, że tak powiem, wstępne sprawdzenie), (pamiętaj, że nasz port nie jest standardowy 8022):

ssh -v localhost -p 8022

Wyświetlone zostaną informacje o debugowaniu i monit o wprowadzenie hasła.
Po udanym połączeniu, aby wyjść, wpisz:

Skonfiguruj dostęp do serwera OpenSSH za pomocą klienta OpenSSH z autoryzacją klucza

Dane: Host OpenSSH Server, do którego chcemy się w przyszłości logować przez ssh pod użytkownikiem NameUserOnOpenSSHServer z hosta OpenSSH Client.Wygenerujmy parę kluczy na hoście, z którego chcemy się połączyć (Client OpenSSH). Sprawdź, czy para kluczy została już wygenerowana.
Po uzgodnieniu z miejscem zapisania klucza (/home/NameUserOnOpenSSHClient/.ssh/id_rsa) hasło można pozostawić puste, wtedy przy uwierzytelnianiu certyfikatem nie będzie delikatnie wprowadzać hasła, które jest mniej bezpieczne ale dużo wygodniej (w naszym przykładzie nie wprowadzimy hasła):

ssh-keygen -t rsa -b 4096

W katalogu domowym ~/.ssh użytkownika, pod którym rozpoczęto generowanie (w naszym przykładzie NazwaUżytkownikaOtwartegoSHCClient) pliki pojawią się na hoście klienta OpenSSH:

~/.ssh/id_rsa.pub publiczny
~/.ssh/id_rsa prywatny

Ustaw uprawnienia do folderu i plików
Nie ma znaczenia pod jakim użytkownikiem rozpoczniemy generację na kliencie OpenSSH, jedyny login do zdalnej maszyny OpenSSH Server będzie musiał być pod tym użytkownikiem, ponieważ zostaną ustawione następujące prawa (takie prawa muszą być ustawione tak, aby klucz prywatny nie jest skompromitowany):

$ chmod 0700 ~/.ssh/ $ chmod 0600 ~/.ssh/id*

Przenieśmy klucz publiczny z klienta na serwer dla użytkownika, pod którym korzystamy z polecenia ssh-copy-id do pliku ~/.ssh/authorized_keys, jeśli port na którym nasłuchuje serwer nie jest standardowy, trzeba go zarejestrować za pomocą przełącznika -p i ująć w cudzysłów. Klucz można przekazać w dowolny sposób, ponieważ jest publiczny.

ssh-copy-id "-p 8022 [e-mail chroniony]"

NameUserOnOpenSSHServer - jest to użytkownik, pod którym będziemy w przyszłości logować się do zdalnej maszyny.
Następnie należy podać hasło użytkownika NameUserONOpenSSHServer, a po udanej autoryzacji zobaczymy podpowiedź:

Teraz spróbuj zalogować się do komputera za pomocą „ssh” [e-mail chroniony]"" i zaewidencjonuj: ~/.ssh/authorized_keys, aby upewnić się, że nie dodaliśmy dodatkowych kluczy, których się nie spodziewałeś.

Logujemy się do Hosta przez ssh i sprawdzamy zawartość pliku (inne klucze można zarejestrować w tym pliku, szukamy naszego). NazwaUżytkownikONOpenSSHServer/.ssh/authorized_keys:

sudo szsz” [e-mail chroniony] kot sudo /home/NameUserONOpenSSHServer/.ssh/authorized_keys

Musi pasować do zawartości pliku. NazwaUżytkownikONOpenSSHClient/.ssh/id_rsa.pub

Kot sudo /home/NameUserONOpenSSHClient/.ssh/id_rsa.pub

sudo mcedit /etc/ssh/sshd_config

Naciśnij F7, poszukaj PubkeyAuthentication, RSAAuthentication, AuthorizedKeysFile
linie należy odkomentować / ustawić parametry (sprawdź):

# zezwól na użycie kluczy RSA RSAAuthentication yes # jeśli używasz SSH1 nie jest to pożądane # zezwól na autoryzację przy użyciu kluczy PubkeyAuthentication yes # Ścieżka, w której będą znajdować się klucze, z którą każdy użytkownik może połączyć swój własny plik w swoim katalogu. AuthorizedKeysFile %h/.ssh/authorized_keys

Zrestartuj serwer SSH

restart ssh usługi sudo

Ustawiamy prawa do pliku /home/NameUserOnOpenSSHServer/.ssh/authorized_keys

Chmod 0600 ~/.ssh/authorized_keys

Wychodzimy z konsoli OpenSSHServer, próbujemy zalogować się z klienta na serwer za pomocą certyfikatu, wpisujemy linię i powinniśmy dostać się do konsoli OpenSSHServer bez wpisywania hasła (jeśli nie wpisałeś hasła przy generowaniu kluczy)

cisza [e-mail chroniony]

Część 2.

Zanim zaczniemy, utwórzmy nowego użytkownika z uprawnieniami roota.

Określ uprawnienia użytkownika testowego za pomocą polecenia

usermod -a -G sudo test

Aby sprawdzić, czy użytkownik testowy został dodany do grupy sudo, możesz uruchomić następujące polecenie:


Teraz skonfigurujemy zdalny dostęp do serwera przez ssh (wiersz poleceń), jak w lokalna sieć, a także przez Internet

Zainstaluj ssh

sudo apt-get install openssh-server

Po instalacji musimy skonfigurować bezpieczeństwo połączenia i bezpośredni dostęp. Przejdźmy do pliku ustawień

sudo nano /etc/ssh/sshd_config

Domyślnie ssh używa portu 22. Zmieńmy go na niestandardowy, zwiększy to bezpieczeństwo naszego dostępu. Zmieńmy port na przykład na 2200

Podczas łączenia przez ssh nasz serwer będzie wymagał klucza RSA zamiast hasła, a nie hasła. Aby temu zapobiec, wpisz „NO” w parametrach RSAAuthentication i PubkeyAuthentication. Odmawiamy również dostępu użytkownikowi ROOT, w tym celu należy odkomentować parametr Authetication: i wpisać „NO” w parametrze PermitRootLogin

Teraz zarejestrujemy dostęp dla użytkowników

W wierszu AllowUsers określamy użytkowników oddzielonych spacją w postaci użytkownik@host, czyli wskazujemy, który użytkownik może się połączyć skąd. Możesz użyć *

Przypiszmy prawa dostępu użytkownikowi testowemu i przyjrzyjmy się im.

    [e-mail chroniony]* - test użytkownika może łączyć się z dowolnego miejsca
    [e-mail chroniony]* - użytkownik testowy może się połączyć tylko będąc w podsieci 192.168.0.0
    [e-mail chroniony]- test użytkownika może łączyć się tylko z adresu IP 192.168.0.104
    *@192.168.0.* - wszyscy użytkownicy mogą łączyć się w podsieci 192.168.0.0

Możesz także odmówić dostępu. niektórzy użytkownicy(na przykład test użytkownika2), w tym celu musisz wpisać poniżej

Uruchamiamy

sudo /etc/init.d/ssh start

Skonfigurowaliśmy ssh. Teraz otwórzmy do niego dostęp. W tym celu otworzymy dostęp do portu 2200.

W ostatniej części zainstalowaliśmy zaporę ogniową za pomocą polecenia arno-iptables-firewall, teraz musimy wprowadzić tam zmiany. Zgodnie z tym zmienimy konfigurację.

sudo dpkg-reconfigure arno-iptables-firewall

Konfiguracja rozpoczęta

Wprowadź port, który ma zostać otwarty. W tym oknie możesz również wprowadzić inne porty, jeśli chcesz je otworzyć.

W kolejnym oknie również wchodzimy do portu 2200.

Po wprowadzeniu portów możesz wszędzie nacisnąć ENTER i ponownie uruchomić zaporę.

Następnie port ssh będzie dostępny z sieci

Aby zwiększyć bezpieczeństwo połączenia ssh, możemy skonfigurować narzędzie denyhosts. Narzędzie to skrypt Pythona, który analizuje plik /var/log/auth.log pod kątem zapisów nieautoryzowanych prób zalogowania się na serwer przez ssh i dodaje adresy IP, z których te próby zostały wykonane, do pliku /etc/hosts.deny , gdzie logowanie ssh jest zabronione.

Zainstaluj przez zespół

sudo aptitude zainstaluj denyhosts

Natychmiast po instalacji narzędzie przeskanuje plik /var/log/auth.log i doda adresy IP, z których odgadnięto hasła, do /etc/hosts.deny. Skanowanie zajmie trochę czasu, jeśli w pliku /var/log/auth.log znajduje się już wiele takich wpisów.

Po instalacji musisz poprawić plik konfiguracyjny

sudo nano /etc/denyhosts.conf

Zmieńmy ustawienie PURGE_DENY na 3 godziny. W przeciwnym razie możemy zablokować sobie dostęp poprzez kilkukrotne wpisanie błędnego hasła.

Ponadto do kontroli należy podać adres E-mail do wysyłania powiadomień o nieudanych próbach dostępu do serwera:

ADMIN_EMAIL = [e-mail chroniony] zamiast [e-mail chroniony] podaj swoją pocztę

Aby nowe ustawienia zaczęły obowiązywać, musisz ponownie uruchomić usługę denyhosts:

usługa sudo ponownie uruchamia się denyhosts

PS Jeśli musisz zmienić hasło na rachunek. Wpisz polecenie

passwd user - gdzie user to nazwa użytkownika

P.S.S. Jeśli masz problemy z kodowaniem, zajrzyj do ustawień program klienta cii

Najbardziej popularny program do pracy przez ssh, program PuttY.