<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://soisk.info/index.php?action=history&amp;feed=atom&amp;title=Linux_Ubuntu_-_serwer_OpenSSH</id>
	<title>Linux Ubuntu - serwer OpenSSH - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://soisk.info/index.php?action=history&amp;feed=atom&amp;title=Linux_Ubuntu_-_serwer_OpenSSH"/>
	<link rel="alternate" type="text/html" href="https://soisk.info/index.php?title=Linux_Ubuntu_-_serwer_OpenSSH&amp;action=history"/>
	<updated>2026-05-23T18:43:47Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://soisk.info/index.php?title=Linux_Ubuntu_-_serwer_OpenSSH&amp;diff=3254&amp;oldid=prev</id>
		<title>imported&gt;Admin: /* Kopiowanie kluczy na serwer SSH */</title>
		<link rel="alternate" type="text/html" href="https://soisk.info/index.php?title=Linux_Ubuntu_-_serwer_OpenSSH&amp;diff=3254&amp;oldid=prev"/>
		<updated>2023-02-17T10:17:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Kopiowanie kluczy na serwer SSH&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__FORCETOC__&lt;br /&gt;
&lt;br /&gt;
==Po co nam serwer SSH?==&lt;br /&gt;
&lt;br /&gt;
Zainstalowanie serwera ssh pozwala na zdalną pracę w środowisku tekstowym. Usługa ta zapewnia bezpieczny, szyfrowany kanał między dwoma komputerami.&lt;br /&gt;
&lt;br /&gt;
==Instalacja serwera OpenSSH==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install openssh-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sprawdzenie czy działa==&lt;br /&gt;
&lt;br /&gt;
Sprawdzenie statusu serwera dokonujemy poleceniem &amp;lt;code&amp;gt;sudo service sshd status&amp;lt;/code&amp;gt;. Jak widać serwer jest aktywny.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uczen@uczen-VirtualBox:~$ sudo service sshd status&lt;br /&gt;
● ssh.service - OpenBSD Secure Shell server&lt;br /&gt;
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: e&amp;gt;&lt;br /&gt;
     Active: active (running) since Thu 2022-02-24 23:00:12 CET; 31s ago&lt;br /&gt;
       Docs: man:sshd(8)&lt;br /&gt;
             man:sshd_config(5)&lt;br /&gt;
   Main PID: 1979 (sshd)&lt;br /&gt;
      Tasks: 1 (limit: 4632)&lt;br /&gt;
     Memory: 1.0M&lt;br /&gt;
     CGroup: /system.slice/ssh.service&lt;br /&gt;
             └─1979 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups&lt;br /&gt;
&lt;br /&gt;
lut 24 23:00:12 ubuntu systemd[1]: Starting OpenBSD Secure Shell server...&lt;br /&gt;
lut 24 23:00:12 ubuntu sshd[1979]: Server listening on 0.0.0.0 port 22.&lt;br /&gt;
lut 24 23:00:12 ubuntu sshd[1979]: Server listening on :: port 22.&lt;br /&gt;
lut 24 23:00:12 ubuntu systemd[1]: Started OpenBSD Secure Shell server.&lt;br /&gt;
lines 1-15/15 (END)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Katalogi i pliki serwera==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/etc/ssh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
W tym katalogu znajdują się pliki konfiguracyjne&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/etc/ssh/ssh_config&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Plik z ustawieniami klientów. Użytkownicy lokalni mogą nadpisywać plikiem ~/.ssh/config&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/etc/ssh/sshd_config&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Domyślne ustawienia dla serwera SSH.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/etc/ssh/ssh_host_dsa_key i /etc/ssh/ssh_host_dsa_key.pub&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Pliki zawierają klucze DSA prywatny i publiczny.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/etc/ssh/ssh_host_rsa i /etc/ssh/ssh_host_rsa.pub&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Pliki zawierają klucze RSA prywatny i publiczny.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/etc/init.d/ssh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Skrypt init. Jak zawsze można użyć start, stop, restart, status do zarządzania serwerem, np. &amp;lt;code&amp;gt;/etc/init.d/ssh restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/var/log/auth.log&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Dziennik zdarzeń, czyli logi serwera.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Łączenie się z serwerem ssh z linuksa==&lt;br /&gt;
&lt;br /&gt;
Użyjemy polecenia &amp;lt;code&amp;gt;ssh login@host&amp;lt;/code&amp;gt;, czyli na przykład &amp;lt;code&amp;gt;ssh uczen@192.168.0.96&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Łączenie się z serwerem ssh z windowsa==&lt;br /&gt;
&lt;br /&gt;
Działa to tak samo jak i na linuksie. Użyjemy polecenia &amp;lt;code&amp;gt;ssh login@host&amp;lt;/code&amp;gt;, czyli na przykład &amp;lt;code&amp;gt;ssh uczen@192.168.0.96&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Plik:ssh-soisk0.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Za pierwszym razem musimy zaakceptować przesłanie odcisku palca. Później nie ma tego monitu.&lt;br /&gt;
&lt;br /&gt;
==Bezpieczeństwo SSH==&lt;br /&gt;
&lt;br /&gt;
Jeden z najczęstszym ataków na serwery Linux to atak brutalnej siły (brute force) przez ssh. Czy nasz serwer jest odpowiednio zabezpieczony?&lt;br /&gt;
&lt;br /&gt;
===Plik /etc/ssh/sshd_config===&lt;br /&gt;
&lt;br /&gt;
Plik odpowiada za ustawienia serwera. &lt;br /&gt;
&lt;br /&gt;
===Blokowanie logowania na konto root===&lt;br /&gt;
&lt;br /&gt;
Jest tam ustawienie &amp;lt;code&amp;gt;PermitRootLogin&amp;lt;/code&amp;gt; ustawione na &amp;lt;code&amp;gt;prohibit-password&amp;lt;/code&amp;gt;, czyli serwer nie zaloguje na konto root. Najlepiej nie dopuszczać do logowania na roota. Tak oprócz hasła, będzie musiał zgadnać jeszce login. Ponadto nie będzie miał pełnych praw. W Ubuntu co prawda koto root jest ono wyłączone, więc logowanie nie powiodłoby się, nawet przy innych opcjach w sshd_config.&lt;br /&gt;
&lt;br /&gt;
Próba logowania przy włączonym koncie root wygląda tak:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 PS C:\Users\jarek&amp;gt; ssh root@192.168.0.96&lt;br /&gt;
root@192.168.0.96&amp;#039;s password:&lt;br /&gt;
Permission denied, please try again.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Zmiana domyślnego portu===&lt;br /&gt;
&lt;br /&gt;
W pliku /etc/ssh/sshd_config mozemy zamienić domyślny port 22 na inny, w tym celu odnajdujemy wpis #port22, usuwamy komentarz i zmieniamy nr portu. Następnie przeładowujemy serwer ssh &amp;lt;code&amp;gt;sudo systemctl reload sshd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Plik:ssh-soisk7.png]]&lt;br /&gt;
&lt;br /&gt;
Jak widać zalogowaliśmy się używając nowego portu. Na porcie 22 połączenie nie powiodło się.&lt;br /&gt;
&lt;br /&gt;
[[Plik:ssh-soisk8.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===Użycie protokołu 2===&lt;br /&gt;
&lt;br /&gt;
Serwer działa na protokole 2. Protokół 1 nie jest wspieramy. Poniżej próba zalogowania z użyciem protokołu 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\Users\jarek&amp;gt; ssh -1 uczen@192.168.0.99 -p 1122&lt;br /&gt;
SSH protocol v.1 is no longer supported&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Zablokowanie użycia pustego hasła===&lt;br /&gt;
&lt;br /&gt;
Opcja powinna być ustawiona na &amp;lt;code&amp;gt;PermitEmptyPasswords no&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ograniczenie limitu prób wpisanie hasła===&lt;br /&gt;
&lt;br /&gt;
Ustawiłem na 2 próby, usuwając komentarz i modyfikując liczbę MaxAuthTries. Następnie przeładowujemy serwer ssh &amp;lt;code&amp;gt;sudo systemctl reload sshd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Plik:ssh-soisk9.png]]&lt;br /&gt;
&lt;br /&gt;
Jak widać to działa&lt;br /&gt;
&lt;br /&gt;
[[Plik:ssh-soisk10.png|800px]]&lt;br /&gt;
&lt;br /&gt;
===Odpowiednie zdefiniowanie białych i czarnych list===&lt;br /&gt;
&lt;br /&gt;
Nie robimy tego przez sam serwer ssh, ale przez zaporę czy listę ACL, w konkretnych programach, jak TCP Wrapper.&lt;br /&gt;
&lt;br /&gt;
===Uwierzytelnienie na podstawie kluczy===&lt;br /&gt;
&lt;br /&gt;
Hackerzy mogą próbować złamać hasło siłowo, dlatego najlepiej uwierzytelniać się za pomocą kluczy, a nie haseł.&lt;br /&gt;
&lt;br /&gt;
===Wyłączenie uwierzytelniania hasłem===&lt;br /&gt;
&lt;br /&gt;
Robimy to wyłącznie wtedy, gdy działa uwierzytelnianie na podstawie kluczy. Zmieniamy &amp;lt;code&amp;gt;#PasswordAuthentication yes&amp;lt;/code&amp;gt; na &amp;lt;code&amp;gt;PasswordAuthentication no&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Użycie kluczy do uwierzytelnienia==&lt;br /&gt;
&lt;br /&gt;
===Generowanie kluczy===&lt;br /&gt;
&lt;br /&gt;
Pierwszym krokiem będzie wygenerowanie kluczy - prywatnego i publicznego. Służy do tego polecenie &amp;lt;code&amp;gt;ssh-keygen -t rsa&amp;lt;/code&amp;gt;. Jak widać tworzymy klucze rsa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uczen@uczen-VirtualBox:/etc$ ssh-keygen -t rsa&lt;br /&gt;
Generating public/private rsa key pair.&lt;br /&gt;
Enter file in which to save the key (/home/uczen/.ssh/id_rsa): &lt;br /&gt;
Enter passphrase (empty for no passphrase): &lt;br /&gt;
Enter same passphrase again: &lt;br /&gt;
Your identification has been saved in /home/uczen/.ssh/id_rsa&lt;br /&gt;
Your public key has been saved in /home/uczen/.ssh/id_rsa.pub&lt;br /&gt;
The key fingerprint is:&lt;br /&gt;
SHA256:08n5SJnD+wjrVjhGGqFoCxZ75OTzv+ST2rxWGA94Dog uczen@uczen-VirtualBox&lt;br /&gt;
The key&amp;#039;s randomart image is:&lt;br /&gt;
+---[RSA 3072]----+&lt;br /&gt;
|                 |&lt;br /&gt;
| . o  .          |&lt;br /&gt;
|  O.....         |&lt;br /&gt;
|.Eo*.o.+.+ =     |&lt;br /&gt;
|.o..o ++S.@      |&lt;br /&gt;
|  .  ..o+=.=     |&lt;br /&gt;
|      .o+oo .    |&lt;br /&gt;
|      ==.o o     |&lt;br /&gt;
|     .oO* . .    |&lt;br /&gt;
+----[SHA256]-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
W przypadku Windows postępujemy analogicznie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\WINDOWS\system32&amp;gt;ssh-keygen -t rsa&lt;br /&gt;
Generating public/private rsa key pair.&lt;br /&gt;
Enter file in which to save the key (C:\Users\jarek/.ssh/id_rsa):&lt;br /&gt;
Enter passphrase (empty for no passphrase):&lt;br /&gt;
Enter same passphrase again:&lt;br /&gt;
Your identification has been saved in C:\Users\jarek/.ssh/id_rsa.&lt;br /&gt;
Your public key has been saved in C:\Users\jarek/.ssh/id_rsa.pub.&lt;br /&gt;
The key fingerprint is:&lt;br /&gt;
SHA256:u9m301j+kfvAKDkcmJFSAv843+qgG5eiWhpkxi6VCfE jarek@DESKTOP-VM5QQ93&lt;br /&gt;
The key&amp;#039;s randomart image is:&lt;br /&gt;
+---[RSA 3072]----+&lt;br /&gt;
|.   ... .        |&lt;br /&gt;
| o   . o .       |&lt;br /&gt;
|. E   o o        |&lt;br /&gt;
|.. o   + +       |&lt;br /&gt;
| =+   o S .      |&lt;br /&gt;
|=.     + + o o. .|&lt;br /&gt;
|o.. o + o * .=oo |&lt;br /&gt;
|.+ . = . = o+ o.o|&lt;br /&gt;
|o.. o. .= ...o o+|&lt;br /&gt;
+----[SHA256]-----+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kopiowanie kluczy na serwer SSH===&lt;br /&gt;
&lt;br /&gt;
Mamy dwa klucze, prywatny i publiczny. Klucz publiczny musi znaleźć się na serwerze. Klucz prywatny zostaje u nas i musi być strzeżony. Czyli kopiujemy klucz id_rsa.pub na serwer ssh. Możemy wykorzystać polecenie &amp;lt;code&amp;gt;scp&amp;lt;/code&amp;gt;, działa na systemach Windows, jak i Linux.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp id_rsa.pub uczen@192.168.0.100:\home\uczen\.ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zadziała jeśli będziecie w tej samej lokalizacji co plik z kluczem (jak nie to wpisujecie pełną ścieżkę), jeśli podacie prawidłowy adres ip (ten jest z mojej sieci)  oraz prawidłowy login użytkownika (niekoniecznie macie użytkownika uczen)&lt;br /&gt;
&lt;br /&gt;
Następnie dopisujemy jego zawartość do pliku .ssh/authorized_keys w katalogu domowym użytkownika na którego się logujemy w moim wypadku użytkownika uczen. Może to wyglądać tak: &amp;lt;code&amp;gt;sudo cat id_rsa.pub &amp;gt;&amp;gt; .ssh/authorized_keys&amp;lt;/code&amp;gt;. Oczywiście plik id_rsa.pub mam w katalogu domowym użytkownika uczen. Jak masz inaczej to zmodyfikuj ścieżkę.&lt;br /&gt;
&lt;br /&gt;
A tak wygląda skopiowany klucz&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uczen@uczen-VirtualBox:~/.ssh$ cat authorized_keys&lt;br /&gt;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCteD19ZyhMOhDSa+dV5z90YHB8asGzFGtkwa8UdxASJzlNY85yQCN/rOKQpkbdZD5xM2bUR8TrtBE9iatp+5FX2VNS7DsNEfBKKfdmoPXYm6mPFX7szIABo6EpQ4J2wxixgWOfTkGpOR0zHPkjX+e7P9nEHDhNOTYFK4IgR17WAeTP+iZx6c7ROV570ts+F1TqeEk5e6G9lYZBKje90g7h7fKEBBsu7ihG79B/uaYVVmOBwiheS4tL/Usb8u+PZ7v7tc1ljzXpuMgiLf7js3DdqEk0SfwB3myaHPjwUr2nsSU7ETcTdOEhF9T8gVKdfS6jWmDoeK5Uf4Q3Hkmpq3CPJ5vIYmET+ycnxbla0PJmKf8VXolE78MpQ+lEFZG+0RDRckBT3HHlrZSITbITVU/cfPjwawW1TU0b6sZSCf4Ox+2VWDH9kDwfLuSS1U1dPYoDzeDBQWOzn9W12Cb2rGbTwOq9xNNQWRjaiw58QsxOR5RtOWTNru6rMn6VomYs2is= jarek@DESKTOP-VM5QQ93&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logowanie z wykorzystaniem klucza===&lt;br /&gt;
&lt;br /&gt;
Jak widać nie pyta mnie o hasło. Po połączeniu od razu następuje zalogowanie.&lt;br /&gt;
&lt;br /&gt;
[[Plik:ssh-soisk11.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zadanie z SSH z egzaminu zawodowego z czerwca 2021 (zadanie 3)==&lt;br /&gt;
&lt;br /&gt;
Zadanie z wykorzystaniem ssh było banalne. Oto jego treść. &lt;br /&gt;
Korzystając programu PuTTY, nawiąż połączenie SSH z serwerem Linux i za pomocą polecenia systemowego sprawdź bieżącą ścieżkę dyskową na serwerze.&lt;br /&gt;
&lt;br /&gt;
Uruchamiamy program PuTTY. Wpisujemy adres IP serwera ssh. Port i typ połączenia domyślnie wskazuje na ssh. UWAGA: adres wpisany przeze mnie ma się nijak do egzaminu, tam był inny.&lt;br /&gt;
&lt;br /&gt;
[[Plik:ssh-soisk2.png]]&lt;br /&gt;
&lt;br /&gt;
Akceptujemy przesłanie odcisku palca.&lt;br /&gt;
&lt;br /&gt;
[[Plik:ssh-soisk3.png]]&lt;br /&gt;
&lt;br /&gt;
Logujemy się do serwera ssh.&lt;br /&gt;
&lt;br /&gt;
[[Plik:ssh-soisk4.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Jak widać logowanie powiodło się.&lt;br /&gt;
&lt;br /&gt;
[[Plik:ssh-soisk5.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Wykonujemy drugą częśc zadania egzaminacyjnego, to znaczy wydajemy polecenie &amp;lt;code&amp;gt;pwd&amp;lt;/code&amp;gt;, aby sprawdzić bieżącą ścieżkę dyskową.&lt;br /&gt;
&lt;br /&gt;
[[Plik:ssh-soisk6.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Admin</name></author>
	</entry>
</feed>