{"id":1016,"date":"2017-05-08T19:26:29","date_gmt":"2017-05-08T17:26:29","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=1016"},"modified":"2017-05-18T17:39:56","modified_gmt":"2017-05-18T15:39:56","slug":"ssh","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2017\/05\/08\/ssh\/","title":{"rendered":"SSH"},"content":{"rendered":"<p>Secure Shell (SSH) to protok\u00f3\u0142 sieciowy, kt\u00f3ry dostarcza bezpieczny\u00a0 mechanizm transmisji danych pomi\u0119dzy systemami przez sieci IP. Zaprojektowany zosta\u0142 do zast\u0105pienia starego protoko\u0142u telnet, kt\u00f3ry przesy\u0142a\u0142 has\u0142a otwartym tekstem przez sie\u0107. SSH u\u017cywa szyfrowania do zabezpieczenia kana\u0142u komunikacji i wykorzystuje cyfrowe sygnatury do uwierzytelniania. Ponadto sprawdza przesy\u0142ane w czasie sesji dane zapewniaj\u0105c ich integralno\u015b\u0107. SSH zawiera wiele narz\u0119dzi pozwalaj\u0105cych u\u017cytkownikom na bezpieczne zdalne logowanie si\u0119, przesy\u0142anie plik\u00f3w i wykonywanie komend, wykorzystuje przy tym silny mechanizm szyfrowania i uwierzytelniania u\u017cytkownik\u00f3w.<!--more--><\/p>\n<p>OpenSSH jest woln\u0105 open source&#8217;ow\u0105 implementacj\u0105\u00a0 prawnie zastrze\u017conego SSH. Mo\u017ce zast\u0105pi\u0107 takie niebezpieczne us\u0142ugi jak: telnetd, rlogind, rshd, rexec i ftpd. OpenSSH wspiera tak\u017ce takie us\u0142ugi jak tunelowanie, forwardowanie port\u00f3w TCP i forwardowanie X11. Pakiet OpenSSH instaluje wiele komend w systemie, poni\u017csza tabela przedstawia niekt\u00f3re z nich.<\/p>\n<table style=\"width: 714.95px;\">\n<tbody>\n<tr>\n<td style=\"width: 116px;\"><em><span style=\"color: #808080;\">Komenda<\/span><\/em><\/td>\n<td style=\"width: 579.95px;\"><em><span style=\"color: #808080;\">Opis<\/span><\/em><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 116px;\"><span style=\"color: #008000;\"><code>scp<\/code><\/span><\/td>\n<td style=\"width: 579.95px;\">Bezpieczna alternatywa dla rcp.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 116px;\"><span style=\"color: #008000;\"><code>sftp<\/code><\/span><\/td>\n<td style=\"width: 579.95px;\">Bezpieczna alternatywa dla ftp.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 116px;\"><span style=\"color: #008000;\"><code>slogin<\/code><\/span><\/td>\n<td style=\"width: 579.95px;\">Bezpieczna alternatywa dla rlogin, alias dla klienta ssh.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 116px;\"><span style=\"color: #008000;\"><code>ssh<\/code><\/span><\/td>\n<td style=\"width: 579.95px;\">Bezpieczna alternatywa dla rlogin i telnet.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 116px;\"><span style=\"color: #008000;\"><code>ssh-add<\/code><\/span><\/td>\n<td style=\"width: 579.95px;\">Dodaje charakterystyk\u0119 RSA\/DSA\/ECDSA do ssh-agent.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 116px;\"><span style=\"color: #008000;\"><code>ssh-agent<\/code><\/span><\/td>\n<td style=\"width: 579.95px;\">Agent uwierzytelniania. Zarz\u0105dza kluczami u\u017cywanymi przez RSA\/DSA\/ECDSA do uwierzytelniania.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 116px;\"><span style=\"color: #008000;\"><code>ssh-copy-id<\/code><\/span><\/td>\n<td style=\"width: 579.95px;\">Kopiuje klucze RSA\/DSA\/ECDSA na zdalne systemy.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 116px;\"><span style=\"color: #008000;\"><code>ssh-keygen<\/code><\/span><\/td>\n<td style=\"width: 579.95px;\">Generuje prywatne i publiczne klucze.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Pliki konfiguracyjne OpenSSH to: <code>\/etc\/sshd_config<\/code>,<code> \/etc\/ssh_config<\/code> oraz <code>\/etc\/sysconfig\/sshd<\/code>. Do przechwytywania komunikat\u00f3w autoryzacji wykorzystywany jest plik z logami <code>\/var\/log\/secure<\/code>.\u00a0 Cz\u0119\u015b\u0107 dyrektyw pliku \/etc\/sshd_config przedstawia tabela poni\u017cej.<\/p>\n<table style=\"width: 714px;\">\n<tbody>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #808080;\"><em>Dyrektywa<\/em><\/span><\/td>\n<td style=\"width: 455.883px;\"><span style=\"color: #808080;\"><em>Opis<\/em><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> Port<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">\u00a0Port, na kt\u00f3rym nas\u0142uchuje sshd, domy\u015blnie 22.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> ListenAddress<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Adres IP, na kt\u00f3rym ma nas\u0142uchiwa\u0107 demon.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> Protocol<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Wersja protoko\u0142u, kt\u00f3ra ma by\u0107 u\u017cywana. Domy\u015blnie 2.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> SyslogFacility<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">\u00a0Domy\u015blnie <code>AUTHPRIV<\/code>. Definiuje kod udogodnienia, jakie ma by\u0107 u\u017cywane podczas logowania komunikat\u00f3w do <code>\/var\/log\/secure<\/code>. Oparte o konfiguracj\u0119 w pliku\u00a0<code> \/etc\/rsyslog.conf<\/code>.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> LogLevel<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie INFO. Poziom krytyczno\u015bci logowanych komunikat\u00f3w.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> LoginGraceTime<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie 2 minuty. Czas, po kt\u00f3rym roz\u0142\u0105czane jest po\u0142\u0105czenie z u\u017cytkownikiem, kt\u00f3ry si\u0119 nie zalogowa\u0142.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> PermitRootLogin<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie tak (yes). Pozwala na bezpo\u015brednie logowanie roota do systemu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> MaxAuthTries<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie 6. Maksymalna liczba dozwolonych pr\u00f3b uwierzytelnienia u\u017cytkownika. Po tej ilo\u015bci pr\u00f3b zrywane jest po\u0142\u0105czenie.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> MaxSessions<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie 10. Maksymalna ilo\u015b\u0107 otwartych sesji SSH r\u00f3wnolegle.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> RSAAuthentication<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie yes. Okre\u015bla czy pozwala\u0107 na uwierzytelnienie RSA.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> PubKeyAuthentication<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie yes. Okre\u015bla czy ma by\u0107 w\u0142\u0105czona mo\u017cliwo\u015b\u0107 uwierzytelnienia przez klucz publiczny.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> AuthorizedKeysFile<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie <code>~\/.ssh\/authorized_keys<\/code>. Okre\u015bla po\u0142o\u017cenie pliku z autoryzowanymi kluczami u\u017cytkownik\u00f3w.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> PasswordAuthentication<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">\u00a0Domy\u015blnie yes. Okre\u015bla czy ma by\u0107 w\u0142\u0105czona mo\u017cliwo\u015b\u0107 uwierzytelnienia w oparciu o has\u0142o.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> PermitEmptyPasswords<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie no. Okre\u015bla czy zezwala\u0107 na puste has\u0142a.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> ChallengeResponseAuthentication<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie yes. Okre\u015bla czy pozwala\u0107 na uwierzytelnianie metod\u0105 challenge-response.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> UsePAM<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie yes. W\u0142\u0105cza lub wy\u0142\u0105cza uwierzytelnianie przez PAM. Je\u017celi w\u0142\u0105czone tylko root mo\u017ce uruchomi\u0107 demona.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> AllowAgentForwarding<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie yes. W\u0142\u0105cza lub wy\u0142\u0105cza komend\u0119 ssh-agent s\u0142u\u017c\u0105c\u0105 do forwardowania kluczy prywatnych do zdalnych system\u00f3w.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> AllowTCPForwarding<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie yes. Okre\u015bla czy pozwala\u0107 na forwardowanie komunikacji TCP przez kana\u0142 ssh.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> X11Forwarding<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie yes. Pozwala lub zakazuje na zdalny dost\u0119p do aplikacji graficznych (z GUI).<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> TCPKeepAlive<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie yes. Okre\u015bla czy wysy\u0142a\u0107 sygna\u0142y TCP keepalive do serwera ssh aby sprawdzi\u0107 jego dost\u0119pno\u015b\u0107.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> UseLogin<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie no. Pozwala lub zakazuje na u\u017cycie komendy login dla sesji interaktywnych.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> Compression<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie delayed. Okre\u015bla czy pozwoli\u0107 na kompresj\u0119 lub op\u00f3\u017ani\u0107 kompresj\u0119 do czasu a\u017c u\u017cytkownik zostanie uwierzytelniony z powodzeniem.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> ClientAliveInterval<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie 0. Okre\u015bla interwa\u0142y czasowe (timeout interval) w sekundach dla serwera aby wysy\u0142a\u0142 komunikaty do klienta oczekuj\u0105c na odpowied\u017a.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> ClientAliveCountMax<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Domy\u015blnie 3. Je\u017celi ta dyrektywa jest ustawiona na inn\u0105 warto\u015b\u0107 ni\u017c 0, okre\u015bla ona maksymaln\u0105 ilo\u015b\u0107 komunikat\u00f3w, jakie maj\u0105 by\u0107 wys\u0142ane do klienta.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> AllowUsers<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Zezwala na dost\u0119p do serwera tylko umieszczonym na li\u015bcie u\u017cytkownikom. Sk\u0142adnia wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<p><code>AllowUsers user1 user2<\/code><br \/>\n<code>AllowUsers user3@server2.example.com<\/code><br \/>\n<code>AllowUsers user4@192.168.0.110 user5@192.168.0.120<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> AllowGroups<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Zezwala na dost\u0119p do serwera tylko cz\u0142onkom grup umieszczonym na li\u015bcie. Sk\u0142adnia wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<p><code> AllowGroups dba unixadmins<\/code><br \/>\n<code>AllowGroups dba@server2.example.com<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> DenyUsers<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Nie pozwala umieszczonym na li\u015bcie u\u017cytkownikom na dost\u0119p do serwera. Sk\u0142adnia wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<p><code> DenyUsers user1 user2<\/code><br \/>\n<code>DenyUsers user3@server2.example.com<\/code><br \/>\n<code>DenyUsers user4@192.168.0.110 user5@192.168.0.120<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 242.317px;\"><span style=\"color: #008000;\"><code> DenyGroups<\/code><\/span><\/td>\n<td style=\"width: 455.883px;\">Nie pozwala cz\u0142onkom grup umieszczonym na li\u015bcie na dost\u0119p do serwera. Sk\u0142adnia wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<p><code> DenyGroups dba unixadmins<\/code><br \/>\n<code>DenyGroups dba@server2.example.com<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Dost\u0119p do ssh mo\u017cemy przydziela\u0107 u\u017cytkownikom lub jej zakazywa\u0107 nie tylko w oparciu o dyrektywy AllowUsers, DenyUsers, AllowGroups, and DenyGroups<br \/>\nw pliku sshd_config ale tak\u017ce ustawiaj\u0105c odpowiednie restrykcje w plikach TCP Wrappers: <code>hosts.allow<\/code> i <code>hosts.deny. <\/code>Dost\u0119p do ssh mo\u017cemy tak\u017ce zabezpieczy\u0107 na poziomie firewalla.<\/p>\n<p>Sp\u00f3jrzmy na kilka dyrektyw pliku <code>\/etc\/ssh_config<\/code>:<br \/>\n<span style=\"color: #808080;\"><code>\u2026\u2026 . .<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> # Host *<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> # ForwardAgent no<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> # ForwardX11 no<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> # RhostsRSAAuthentication no<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> # RSAAuthentication yes<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> # PasswordAuthentication yes<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> # HostbasedAuthentication no<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> # GSSAPIAuthentication no<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code> \u2026\u2026 . .<\/code><\/span><\/p>\n<p>W pliku tym mo\u017cemy przypisywa\u0107 r\u00f3\u017cne ustawienia u\u017cytkownikom lub grupom. Dla ka\u017cdego klienta czy grupy mo\u017cemy doda\u0107 osobn\u0105 sekcj\u0119 z dyrektywami, zaczynaj\u0105c\u0105 si\u0119 od od dyrektywy Host.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Osobne pliki konfiguracyjne u\u017cytkownik\u00f3w.<\/span><\/p>\n<p>Plik o nazwie config z konfiguracj\u0105 ssh dla danego u\u017cytkownika sk\u0142adowany jest w katalogu ~\/.ssh ( podkatalog katalogu domowego tego u\u017cytkownika). Format pliku ~\/.ssh\/config jest taki sam jak pliku \/etc\/ssh\/ssh_config. Katalog ~\/.ssh nie istnieje domy\u015blnie, zak\u0142adany jest gdy u\u017cytkownik po raz pierwszy loguje si\u0119 na serwer. Katalog ~\/.ssh zawiera ponadto plik o known_host. Plik ten zawiera adres IP i kopi\u0119 klucza publicznego systemu, do kt\u00f3rego uzyskali\u015bmy dost\u0119p. Przyk\u0142adowo mo\u017ce wygl\u0105da\u0107 tak:<\/p>\n<p><span style=\"color: #808080;\"><code>192.168.1.4 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJUiDpnI4TxEOuAHmGU8MHhbDsmEraxp38qfOPIK1ajlVzeJPb0Vwoim1PwAcQQGVbE+1xfKmXShqEjUQm4ew7M=<\/code><\/span><\/p>\n<p>W katalogu, o kt\u00f3rym mowa mog\u0105 tak\u017ce znajdowa\u0107 si\u0119 pliki takie jak:<\/p>\n<ul>\n<li><code>id_rsa, id_dsa, id_ecdsa<\/code> &#8211; sk\u0142aduj\u0105ce klucze prywatne<\/li>\n<li><code>id_rsa.pub, id_dsa.pub, id_ecdsa.pub<\/code> &#8211; sk\u0142aduj\u0105ce klucze prywatne<\/li>\n<li><code>authorized_keys<\/code> &#8211; wykorzystywany gdy ustawiamy relacj\u0119 zaufania mi\u0119dzy dwoma systemami.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Konfiguracja uwierzytelnienia w oparciu o klucz prywatny i publiczny.<\/span><\/p>\n<p>1. Logujemy si\u0119 na <em>server1<\/em> jako <em>user<\/em>. Generujemy klucze RSA. Wybieramy domy\u015blne miejsce sk\u0142adowania kluczy, tj. wciskamy ENTER przy wyborze nazwy pliku. Has\u0142o ustawiamy puste.<br \/>\n<code><\/code><\/p>\n<p><code># ssh-keygen<\/code><br \/>\n<span style=\"color: #808080;\"><code>Generating public\/private rsa key pair.<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>Enter file in which to save the key (~\/.ssh\/id_rsa):<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>Enter passphrase (empty for no passphrase):<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>Enter same passphrase again:<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>Your identification has been saved in ~\/.ssh\/id_rsa.<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>Your public key has been saved in \/root\/.ssh\/id_rsa.pub.<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>The key fingerprint is:<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>46:87:a9:c8:6b:bf:2c:f1:99:ab:77:1d:05:1f:2a:dc user@centos.host.pl<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>The key's randomart image is:<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>+--[ RSA 2048]----+<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 o. .\u00a0\u00a0\u00a0 |<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .+..+ .\u00a0\u00a0 |<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>|\u00a0\u00a0 . . oo.E o\u00a0\u00a0\u00a0 |<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>|\u00a0\u00a0\u00a0 o . S. .\u00a0\u00a0\u00a0\u00a0 |<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>|\u00a0\u00a0\u00a0 .. .\u00a0 .\u00a0\u00a0\u00a0\u00a0\u00a0 |<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>|\u00a0\u00a0\u00a0 oo o . .\u00a0\u00a0\u00a0\u00a0 |<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>|\u00a0\u00a0 ..o= . .\u00a0\u00a0\u00a0\u00a0\u00a0 |<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>|\u00a0\u00a0\u00a0 .+=+\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>+-----------------+<\/code><\/span><\/p>\n<p>Klucze zapisane zostaj\u0105 w katalogu <code>~\/.ssh<\/code>.<br \/>\nKlucz publiczny: <code>~\/.ssh\/id_rsa.pub<\/code><br \/>\nKlucz prywatny: <code>~\/.ssh\/id_rsa<\/code><\/p>\n<p>2. Plik z kluczem publicznym kopiujemy na serwer2 (adres IP=192.168.10.2) do katalogu domowego odpowiedniego u\u017cytkownika na drugim serwerze. Przy pierwszym logowaniu na serwer2 wy\u015bwietli si\u0119 zapytanie czy akceptujemy fingerprint (odcisk palca) dla drugiego serwera. Potwierdzamy <em>yes<\/em>.<\/p>\n<p><code>#\u00a0 ssh-copy-id user@192.168.10.2<\/code><br \/>\n<span style=\"color: #808080;\"><code>The authenticity of host '192.168.10.2 (192.168.10.2)' can't be established.<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>ECDSA key fingerprint is a6:28:81:79:a2:8c:f9:0d:5c:39:a2:aa:f9:3f:12:6a.<\/code><\/span><br \/>\n<code>Are you sure you want to continue connecting (yes\/no)? yes<\/code><br \/>\n<span style=\"color: #808080;\"><code>\/usr\/bin\/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>\/usr\/bin\/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys<\/code><\/span><\/p>\n<p>3. Teraz mo\u017cemy zalogowa\u0107 si\u0119 na zdalnym serwerze bez u\u017cycia has\u0142a.<br \/>\n<code># ssh 192.168.10.2<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Wykonywanie komend na zdalnym serwerze przy u\u017cyciu ssh.<\/span><\/p>\n<p><code># ssh 192.168.10.2 \/bin\/ls -l<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Kopiowanie plik\u00f3w przy u\u017cyciu scp.<\/span><\/p>\n<p>Kopiowanie z lokalnego serwera pliku plik_lokalny na serwer host2:<br \/>\n<code># scp plik_lokalny user@host2:\/sciezka\/do\/pliku<\/code><\/p>\n<p>Kopiowanie z serwera zdalnego pliku pliku2 na serwer lokalny:<br \/>\n<code># scp user@host2:\/sciezka\/do\/pliku2\u00a0 plik_lokalny<br \/>\n<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Przesy\u0142anie plik\u00f3w przy u\u017cyciu sftp.<\/span><\/p>\n<p><code> $ sftp server2<\/code><br \/>\n<span style=\"color: #808080;\"><code>Enter passphrase for key '\/home\/user1\/.ssh\/id_rsa':<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>Connected to server2.<\/code><\/span><br \/>\n<code>sftp&gt;<\/code><\/p>\n<p>Tutaj mo\u017cemy wpisa\u0107 znak zapytania ? aby wy\u015bwietli\u0107 list\u0119 dost\u0119pnych komend.<\/p>\n<p><code> sftp&gt; ?<\/code><br \/>\n<span style=\"color: #808080;\"><code>Available commands:<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>bye Quit sftp<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>cd path Change remote directory to 'path'<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>chgrp grp path Change group of file 'path' to 'grp'<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>chmod mode path Change permissions of file 'path' to 'mode'<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>chown own path Change owner of file 'path' to 'own'<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>df [-hi] [path] Display statistics for current directory or filesystem containing 'path'<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>exit Quit sftp<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>get [-Ppr] remote [local] Download file<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>reget remote [local] Resume download file<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>help Display this help text<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>lcd path Change local directory to 'path'<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>lls [ls-options [path]] Display local directory listing<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>lmkdir path Create local directory<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>ln [-s] oldpath newpath Link remote file (-s for symlink)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>lpwd Print local working directory<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>ls [-1 afhlnrSt] [path] Display remote directory listing<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>lumask umask Set local umask to 'umask'<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>mkdir path Create remote directory<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>progress Toggle display of progress meter<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>put [-Ppr] local [remote] Upload file<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>pwd Display remote working directory<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>quit Quit sftp<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>rename oldpath newpath Rename remote file<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>rm path Delete remote file<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>rmdir path Remove remote directory<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>symlink oldpath newpath Symlink remote file<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>version Show SFT P version<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>! command Execute 'command' in local shell<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>! Escape to local shell<\/code><\/span><br \/>\n<span style=\"color: #808080;\"><code>? Synonym for help<\/code><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Secure Shell (SSH) to protok\u00f3\u0142 sieciowy, kt\u00f3ry dostarcza bezpieczny\u00a0 mechanizm transmisji danych pomi\u0119dzy systemami przez sieci IP. Zaprojektowany zosta\u0142 do zast\u0105pienia starego protoko\u0142u telnet, kt\u00f3ry przesy\u0142a\u0142 has\u0142a otwartym tekstem przez sie\u0107. SSH u\u017cywa szyfrowania do zabezpieczenia kana\u0142u komunikacji i wykorzystuje cyfrowe sygnatury do uwierzytelniania. Ponadto sprawdza przesy\u0142ane w czasie sesji dane zapewniaj\u0105c ich integralno\u015b\u0107. SSH &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/miro.borodziuk.eu\/index.php\/2017\/05\/08\/ssh\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;SSH&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1026,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/1016"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1016"}],"version-history":[{"count":26,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/1016\/revisions"}],"predecessor-version":[{"id":1193,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/1016\/revisions\/1193"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/1026"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=1016"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=1016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}