Kako podesiti pametne telefone i računare. Informativni portal

Povezivanje preko ssh linux terminala. Šta se može promijeniti u SSH postavkama

Postoji mnogo mogućnosti da organizujete daljinski pristup svom računaru putem internet veze. Neki od njih su vrlo složeni i koriste ih samo stručnjaci u profesionalnom okruženju, dok su drugi vrlo jednostavni i mogu ih savladati čak i neiskusni korisnici. Već smo pisali o nekoliko metoda, posebno o programu TeamViewer i VNC protokolu.

Nijanse rada sa SSH protokolom u Ubuntuu.

U ovom članku ćemo govoriti o SSH protokolu sigurne veze, koji je nedavno postao gotovo standard među korisnicima Linuxa. Vrlo je siguran jer podržava enkripciju i vrlo ga je lako konfigurirati. Pogledaćemo karakteristike SSH protokola, a takođe ćemo naučiti kako da konfigurišemo server i klijent. Sve što će se od vas tražiti je računar sa instaliranim Ubuntu operativnim sistemom i internet konekcijom.

Protokol Secure Shell, poznat i kao SSH, je poseban protokol za siguran daljinski pristup računaru preko mrežne veze. Protokol ima mnoge mogućnosti, uključujući postavljanje sigurne veze, pokretanje terminalske komandne linije na računaru s kojim se daljinski povezujete, pokretanje GUI aplikacija, prijenos datoteka i postavljanje privatnih mreža.

Postoji mnogo uslužnih programa koji su odgovorni za upravljanje protokolom. Na Ubuntu operativnom sistemu najpoznatiji je Open SSH. To je potpuno besplatan proizvod s otvorenom licencom i punim skupom osnovnih funkcija. Klijent za upravljanje SSH vezom je već uključen u Ubuntu distribuciju, potrebno je samo da instalirate i konfigurišete serverske komponente. Upravljanje se vrši preko komandi u terminalu.

Instaliranje SSH na Ubuntu

Pošto je protokol SSH klijenta prihvaćeni standard za upravljanje njime, možete ga instalirati pomoću kratke komande u Ubuntu terminalu. da biste to učinili, pokrenite sam terminal pritiskom na kombinaciju tipki na tastaturi Ctrl + Alt + T, a zatim koristite naredbu sudo apt-get install ssh. Nakon pripreme za preuzimanje, uslužni program će vas pitati da li želite da nastavite. prebacite tastaturu na ruski i pritisnite D. Na vašoj Ubuntu mašini, ssh instalacija će biti završena za nekoliko sekundi. Ako želite da omogućite automatsko pokretanje pri pokretanju sistema, koristite naredbu sudo systemctl enable sshd. shodno tome, ako kasnije želite da onemogućite automatsko pokretanje usluge, trebat će vam naredba sudo systemctl disable sshd.

Sada možete provjeriti kako sve funkcionira. Dovoljno je pokušati se povezati na lokalni SSH server: ssh localhost. Uslužni program će tražiti lozinku superkorisnika, a također će ponuditi dodavanje unesene adrese na listu dozvoljenih. Ako vam sve radi kako ste očekivali, vidjet ćete malu poruku koja završava obavještenjem o datumu posljednjeg povezivanja na adresu.

Sada se možete povezati na bilo koji računar na mreži ako znate njegovu IP adresu i korisničko ime. Da biste to učinili, u terminalu morate unijeti naredbu u sljedećem formatu:

ssh korisničko ime @ ip_adresa

Na primjer, ako želite da se povežete na računar Vasje Pupkina sa adresom 132.14.25.10, naredba će izgledati ovako:

ssh [email protected]

Postavljanje SSH-a na Ubuntu

Da biste ispravno i bezbedno radili sa SSH serverom, morate ga konfigurisati na određeni način. Da biste to učinili, morate urediti datoteku parametara sshd_config koja se nalazi u direktoriju / etc / ssh. Važno je napomenuti da se ne može promijeniti jednostavnim otvaranjem kroz upravitelj datoteka u običnom uređivaču teksta. Sistem će vas obavestiti o nedovoljnim pravima, a vi jednostavno nećete moći da sačuvate promene. Stoga vam je opet potreban terminal i poznavanje nekoliko naredbi o kojima ćemo sada govoriti. Hajde da prođemo kroz neophodne korake za postavljanje ssh servera na Ubuntu operativnom sistemu.


Šta se može promijeniti u SSH postavkama


Minimum potrebnih komandi


Ovo će biti serija članaka o instalaciji i konfiguraciji jednostavnog servera za tim za web razvoj. Server će imati Git, FTP, SSH, Apache 2, PHP 5.4, MySQL, cron, poddomene, memcached, Composer. Članci će se odnositi na Ubuntu 14.04. Vjerujem da će se server koristiti u korporativne svrhe, a ne za finalne projekte. Mada, ako je dozvoljeno da projekat bude na dev serveru, zašto onda ne...

Odmah ću rezervisati. Nemam dovoljno iskustva u administraciji servera i ne radim to profesionalno, tako da ne garantiram 100% ispravnost dolje opisanih radnji. Uputstvo je podsjetnik za brzo postavljanje servera za moje potrebe. Ako vidite očiglednu grešku ili "ovo ne bi trebalo da se radi u produkciji" (iako sam naveo da se projekti ne drže na dev serveru), bit ću vam zahvalan ako u komentarima opišete ispravno rješenje.

Pretpostavlja se da je Ubuntu 14.04 već instaliran na serveru (na VPS/VDS, na primjer) i da imate pristup root konzoli.

  1. Korisnici i SSH

Hajde da počnemo.

Korisnici servera

Prvo, kratka lista komandi za rad sa korisnicima.

Dodaj novog korisnika

adduser Korisničko ime

Izbriši korisnika

userdel -r Korisničko ime

Promijeni lozinku

passwd Korisničko ime

Prijavite se kao korisnik

su Korisničko ime

Nazad na korijen:

Promijenite početni direktorij

usermod -d potreban_direktorij Korisničko ime

Postavite vlasnika i grupu na direktorij (i sav njegov sadržaj)

chown -R Korisničko ime:ime_grupe direktorij

Odlučite se o korisnicima

  • mygit - da pokaže kako se radi sa Git repozitorijumima;
  • myftp - za demonstraciju rada sa FTP-om;
  • myssh - da pokaže kako se radi sa SSH.

Ako je s myssh-om jasno, onda, na prvi pogled, SSH pristup mygit-u, a još više myftp-u nije potreban. Možete zabraniti SSH pristup određenim korisnicima (ili dozvoliti samo određenim) u / etc / ssh / sshd_config ali mygit koristi SSH za autorizaciju Gita. Stoga ćemo dalje razmotriti još jednu metodu koja ne zahtijeva ponovno pokretanje SSH-a i, s jedne strane, ne dozvoljava pristup konzoli preko SSH mygit-a, ali s druge strane dozvoljava korištenje SSH-a za rad sa Gitom.

SSH

Priprema

Instalacija OpenSSH klijenta i servera se vrši naredbom:

Apt-get install ssh

Konfiguracija

Koristeći uređivač mcedit (ili nano, u slučaju mcedita, prvo morate instalirati mc), otvorite datoteku / etc / ssh / sshd_config:

Mcedit / etc / ssh / sshd_config

Provjerite ima li sljedeći parametar navedenu vrijednost:

PermitEmptyPasswords br

Ovdje možete odrediti drugi port za SSH, ali u ovom slučaju, nakon naknadnog povezivanja klijenata, naredba za povezivanje bi trebala izgledati ovako:

Ssh -p PORT login @ server

Možete ponovo pokrenuti SSH server naredbom:

Ponovno pokretanje servisa ssh

Klijenti

Korisnici koji će se povezati na server preko SSH ili Git-a (preko SSH) moraju imati instaliran SSH klijent i generirane ključeve. Možete provjeriti da li je ključ generiran prisustvom datoteke ~ / .ssh / id_rsa.pub... Ako ne, morate ga generirati, na primjer, koristeći sljedeću naredbu:

Ssh-keygen -t rsa -C " [email protected] server"

Lozinka se može izostaviti.

Zatim dodajte ključ u ssh-agent:

Ssh-add ~ / .ssh / id_rsa

Autorizacija ključa

Tako da svaki put kada se povežete na SSH i Git (radiće nam i preko SSH) ne unesete lozinku, potrebno je da kreirate fajl ~ / .ssh / autorizirani_ključevi te korisnike na serveru na koje će se uspostaviti veze.

Bilješka: da biste kreirali .ssh direktorij (ako ga nema) i datoteku authorized_keys, morate biti prijavljeni kao isti korisnik u čijem početnom direktoriju se radnje izvode. Ili nakon toga postavite odgovarajuća prava, grupu i vlasnika. Ovo također treba imati na umu kada mijenjate datoteku authorized_keys u budućnosti.

U ovoj datoteci, na svakom redu treba da bude sadržaj javnog ključa ( ~ / .ssh / id_rsa.pub) klijenata ovog korisnika. Trebao bi biti prazan red na kraju authorized_keys datoteke.

Drugim riječima, ako imamo server_user_1, kojem će putem ssh-a pristupati klijenti client_user_1 i client_user_2, tada u početnom direktoriju korisnika server_user_1 datoteka ~ / .ssh / authorized_keys treba imati tri reda:

Sadržaj id_rsa.pub client_user_1 sadržaj id_rsa.pub client_user_2 (prazan niz)

Predstavljamo Vašoj pažnji novi kurs iz tima The codeby- "Testiranje penetracije web aplikacija od nule". Opća teorija, priprema radnog okruženja, pasivno fuzziranje i otisak prsta, aktivno fuzziranje, ranjivosti, post-eksploatacija, alati, društveni inženjering i još mnogo toga.


Šta je SSH i čemu služi

Secure Shell (SSH) je mrežni protokol koji pruža funkcionalnost ljuske udaljenoj mašini preko sigurnog kanala. SSH donosi razna sigurnosna poboljšanja, uključujući autentifikaciju korisnika/domaćina, enkripciju podataka i integritet podataka, što onemogućava popularne napade poput prisluškivanja, DNS/IP lažiranja, krivotvorenja podataka i otmice veze itd. Za korisnike ftp-a, telneta ili rlogin koji koriste protokol koji prenosi podatke u čistom tekstu, toplo je preporučljivo da se prebace na SSH.

OpenSSH je implementacija otvorenog koda SSH protokola koji šifrira mrežnu vezu pomoću paketa programa. Ako želite da imate SSH na Linuxu, možete instalirati OpenSSH, koji se sastoji od OpenSSH servera i klijentskih paketa.

OpenSSH server / klijent paketi dolaze sa sljedećim uslužnim programima:

  • OpenSSH server: sshd (SSH daemon)
  • OpenSSH klijent: scp (sigurna udaljena kopija), sftp (siguran prijenos datoteka), slogin / ssh (sigurna udaljena prijava), ssh-add (dodavanje privatnog ključa), ssh-agent (agent za autentifikaciju), ssh-keygen (upravljanje ključevima za autentifikaciju ).

Instalacija OpenSSH servera i klijenta na Linux

Ako želite da instalirate OpenSSH server/klijent i podesite OpenSSH server da se automatski pokreće, sledite uputstva u nastavku, koja se razlikuju u zavisnosti od distribucije.

Debian, Ubuntu ili Linux Mint

$ sudo apt-get install openssh-server openssh-client

Na sistemima baziranim na Debianu, odmah nakon instalacije, OpenSSH će se automatski pokrenuti pri pokretanju. Ako se iz nekog razloga OpenSSH server ne pokrene automatski pri pokretanju sistema, možete pokrenuti sljedeću naredbu da nedvosmisleno dodate ssh u podizanje sistema pri pokretanju sistema.

$ sudo update-rc.d ssh zadane postavke

Fedora ili CentOS / RHEL 7

$ sudo yum -y install openssh-server openssh-clients $ sudo systemctl pokreni sshd uslugu $ sudo systemctl omogući sshd.service

CentOS / RHEL 6

$ sudo yum -y install openssh-server openssh-clients $ sudo service sshd start $ sudo chkconfig sshd on

Arch Linux

$ sudo pacman -Sy openssh $ sudo systemctl pokreni sshd uslugu $ sudo systemctl omogući sshd.service

Podešavanje OpenSSH servera

Ako želite da konfigurišete OpenSSH server, možete urediti konfiguracionu datoteku za čitav sistem koja se nalazi u / etc / ssh / sshd_config.

Postoji nekoliko OpenSSH opcija koje bi vas mogle zanimati:

Podrazumevano, sshd osluškuje port 22 i osluškuje dolazne ssh veze. Promjenom zadanog porta za ssh, možete spriječiti razne automatske hakerske napade.

Slušajte Adresa 192.168.1.1

Ako vaša mašina ima više od jednog fizičkog mrežnog interfejsa, možda ćete želeti da proverite koji je povezan sa sshd-om, možete koristiti opciju ListenAddress da to uradite. Ova opcija pomaže u poboljšanju sigurnosti ograničavanjem dolaznog SSH-a samo preko određenog interfejsa.

HostKey / etc / ssh / ssh_host_key

Opcija HostKey određuje gdje se nalazi lični ključ domaćina.

PermitRootLogin br

Opcija PermitRootLogin - Da li se root može prijaviti putem ssh-a.

AllowUsers alice bob

Koristeći opciju AllowUsers možete selektivno onemogućiti ssh uslugu za određene korisnike Linuxa. Može se navesti više korisnika, odvojenih razmacima.

Nakon modifikacije / etc / ssh / sshd_config, obavezno ponovo pokrenite ssh uslugu.

Za ponovno pokretanje OpenSSH na Debianu, Ubuntu ili Linux Mint:

$ sudo /etc/init.d/ssh restart

Da ponovo pokrenete OpenSSH na Fedora, CentOS / RHEL 7 ili Arch Linux:

$ sudo systemctl ponovo pokrenite sshd.service

Da ponovo pokrenete OpenSSH na CentOS / RHEL 6:

$ sudo servis sshd restart

Kako se povezati na SSH

Povezivanje na SSH iz Linuxa

Korisnici Linuxa ne moraju instalirati dodatni softver.

Povežite se na SSH iz Windowsa

Za Windows, mnogi ljudi preporučuju i uspješno koriste PuTTY. Nemam ništa protiv ovog programa, ali ja više volim i preporučujem Cygwin.

Cygwin nije samo SSH klijent. To je moćan kombajn koji podržava mnoge Linux komande. Na primjer, vrlo je lako kreirati SSL certifikate u Cygwinu (baš kao u Linuxu). U Windows-u morate plesati uz tamburu da biste kreirali samopotpisane certifikate. Cygwin je vrlo zgodan za korištenje cURL (ne morate ništa posebno instalirati) itd. Oni kojima nedostaje komandna linija i Linux programi na Windows-u naći će izlaz za sebe u Cygwinu.

Instalacija Cygwina je jednostavna. Idite na službenu web stranicu i preuzmite 32-bitnu ili 64-bitnu verziju.

Preuzeta je mala datoteka - ovo je instalater. Instalater je grafički. Iako sadrži veliki broj opcija, sve su prilično jednostavne i mnoge su poznate iz drugih grafičkih instalatera. Ako nešto nije jasno, samo kliknite na "Dalje". Možda samo sljedeći prozor može biti zbunjujući:

Ovdje su svi artikli dostupni za ugradnju. Ne moramo da ih razumemo sada. Pošto su najtraženiji već označeni za ugradnju. A ako nešto nedostaje u budućnosti, onda možete lako instalirati potreban.

SSH veza (uobičajena za Linux i Windows)

Korisnici Linuxa otvaraju konzolu, Windows korisnici upisuju Cygwin.

SSH-u su potrebne sljedeće informacije za povezivanje:

  • IP ili ime hosta
  • broj porta
  • Korisničko ime
  • korisnička lozinka

Dva od ovih parametara SSH može pretpostaviti: korisničko ime i broj porta. Ako port nije naveden, pretpostavlja se zadani port. Ako nije naveden nijedan korisnik, tada se koristi isto ime kao u sistemu s kojeg se uspostavlja veza. Na primjer, adresa hosta za vezu je 192.168.1.36. Ako kucam

Ssh 192.168.1.36

Vidim sledeće

[email protected]~ $ ssh 192.168.1.36 Autentičnost hosta "192.168.1.36 (192.168.1.36)" se ne može "uspostaviti. ECDSA ključ prsta je SHA256: sIxZeSuiivoEQ00RXAQHxylxuEA8p8r da li ste sigurni da želite da se povežete.

Pošto se prvi put povezujem na host, to je nepoznati host. Pitaju me da li želim da nastavim. kucam da:

Upozorenje: Trajno dodat "192.168.1.36" (ECDSA) na listu poznatih hostova. [email protected]"s lozinka:

U redu, host 192.168.1.36 je dodan na listu poznatih hostova. Od mene se traži lozinka za korisnika Alex. Pošto na serveru sa SSH nema takvog korisnika, ali ja kliknem Ctrl + C(za prekid) i unesite naredbu zajedno sa korisničkim imenom udaljenog sistema. Korisnik se unosi ispred adrese udaljene mašine i odvaja se od adrese simbolom @. Simbol @ na engleskom se čita kao at i može se prevesti kao "in". One. snimanje [email protected] može se protumačiti kao "korisnički mial na mašini 192.168.1.36".

Ssh [email protected]

Poziv [email protected] ustupio mjesto pozivu [email protected] To znači da smo već na udaljenoj mašini, odnosno da već imamo vezu. Ako treba da navedete port (ako se razlikuje od standardnog), onda se port mora navesti nakon prekidača -p. Na primjer ovako:

Ssh [email protected]-p 10456

Nakon povezivanja, dočekuje nas nešto poput sljedećeg pozdrava:

Linux mint 3.16.0-4-amd64 # 1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 Programi uključeni u Debian GNU / Linux sustav su besplatni softver; tačni uslovi distribucije za svaki program su opisani u pojedinačnim datotekama u /usr / share / doc / * / copyright. Debian GNU / Linux dolazi bez APSOLUTNO NIKAKVE GARANCIJE, u mjeri u kojoj je to dopušteno primjenjivim zakonom. Zadnja prijava: Tue Jun 16 15:32:25 2015 od 192.168.1.35

To implicira da je udaljena mašina Linux Mint, sa kernelom 3.16, 64-bitnom verzijom. Također važne informacije o vremenu posljednje prijave i IP adresi sa koje je veza nastala. Ako vam vrijeme i IP adresa nisu poznati, a vi ste jedini korisnik, onda je vaš sistem ugrožen i morate poduzeti odgovarajuće mjere.

Ukucajmo nekoliko naredbi kako bismo bili sigurni gdje smo i ko smo: pwd, uname -a itd.:

Da biste prekinuli sesiju (prekinuli vezu), otkucajte

Ili pritisnite Ctrl + D.

Prijavite se na SSH bez unosa lozinke

Prvo, jednostavno je zgodnije. Drugo, sigurnije je.

Prvo, trebamo kreirati rsa ključeve. Ako ste korisnik Linuxa, onda ste u redu. Ako ste korisnik Windowsa, ali niste poslušali moj savjet i odabrali PuTTY, onda imate problem i sami razmislite kako ga riješiti. Ako imate Cygwin, onda je sve u redu.

Ako ste uspjeli da se prijavite na udaljeni sistem, odjavite se. Zatim ukucajte

Ssh-keygen -t rsa

Od nas se traži naziv fajla, ne treba ništa unositi, koristiće se podrazumevano ime. Traži se i lozinka. Ne unosim lozinku.

Sada na udaljenom stroju, moramo kreirati .ssh direktorij. Izvršenje naredbe na udaljenom stroju će biti opisano u nastavku. Za sada samo kopirajte naredbu, ne zaboravite promijeniti IP adresu i korisničko ime u svoje:

Ssh [email protected] mkdir .ssh

Sada moramo kopirati sadržaj datoteke id_rsa.pub na udaljenu mašinu. To je vrlo lako učiniti (ne zaboravite promijeniti podatke u svoje):

Cat .ssh / id_rsa.pub | ssh [email protected]"mačka >> .ssh / autorizirani_ključevi"

Sada se samo prijavljujemo i više od nas ne tražimo lozinku. I sada će uvek biti tako.

Izvršavanje naredbi na udaljenom poslužitelju bez kreiranja shell sesije

Pored otvaranja sesije ljuske na udaljenom sistemu, ssh takođe omogućava izvršavanje pojedinačnih komandi na udaljenom sistemu. Na primjer, da pokrenete naredbu stabla na udaljenom hostu pod nazivom remote-sys i prikažete rezultate na lokalnom sistemu, uradili biste ovo:

ssh stablo udaljenog sistema

Moj primjer iz stvarnog života:

Ssh [email protected] drvo

Koristeći ovu tehniku, možete raditi zanimljive stvari, kao što je izvršavanje naredbe ls na udaljenom sistemu i preusmjeravanje izlaza na datoteku na lokalnom sistemu:

ssh remote-sys "ls *"> dirlist.txt

Pravi primjer:

Ssh [email protected]"ls *"> dirlist.txt mačka dirlist.txt

Obratite pažnju na jednostruke navodnike u gornjoj naredbi. To je zato što ne želimo da se proširenje putanje vrši na lokalnom stroju; pošto nam je potrebno ovo izvršenje na udaljenom sistemu. Također, ako želimo preusmjeriti standardni izlaz na datoteku na udaljenom stroju, možemo staviti naredbu za preusmjeravanje i ime datoteke unutar jednostrukih navodnika:

ssh remote-sys "ls *> dirlist.txt"

Slanje stdout-a sa lokalne mašine na udaljeni ssh

Jednako zanimljiva verzija izvršenja naredbe prikazana je malo iznad:

Cat .ssh / id_rsa.pub | ssh [email protected]"mačka >> .ssh / autorizirani_ključevi"

  • Cat komanda čita i prikazuje sadržaj .ssh / id_rsa.pub datoteke na lokalnom stroju red po red.
  • | (pipe) prosljeđuje ono što bi se trebalo pojaviti na stdout-u drugoj komandi.
  • Umjesto naredbe koja je trebala obraditi linije koje su joj proslijeđene, uspostavlja se veza sa udaljenim sistemom (ssh [email protected]).
  • Udaljeni sistem prima linije za koje je data komanda cat >> .ssh / authorized_keys. One. sadržaj standardnog izlaza se upisuje red po red u datoteku .ssh / authorized_keys na udaljenoj mašini.

Otvaranje grafičkog programa koji se nalazi na udaljenom računaru

Sledeći trik zahteva dva Linux računara. Nažalost, čak ni Cygwin ne može podnijeti ovaj trik. Štaviše, oba Linuxa moraju imati grafičko korisničko sučelje.

Tuneliranje sa SSH

Između ostalog, ono što se dešava kada se uspostavi veza sa udaljenim hostom preko SSH-a je stvaranje šifrovanog tunela koji se formira između lokalnog i udaljenog sistema. Obično se ovaj tunel koristi kako bi se osiguralo da se komande otkucane na lokalnom stroju bezbedno prenose na udaljenu mašinu, a rezultat se takođe bezbedno šalje nazad.

Pored ove osnovne funkcije, SSH omogućava da se većina vrsta saobraćaja usmjerava preko šifriranog tunela, stvarajući neku vrstu VPN-a (virtuelne privatne mreže) između lokalnog i udaljenog sistema.

Možda najčešće korišćena od ovih karakteristika je mogućnost emitovanja saobraćaja X Window sistema. Na sistemu sa X serverom (to su mašine koje imaju grafičko korisničko sučelje), moguće je pokrenuti X klijentski program (grafička aplikacija) na udaljenom sistemu i videti rezultate njegovog rada na lokalnom sistemu. Ovo je lako uraditi. Na primjer, želim da se povežem sa udaljenim hostom remote-sys i na njemu želim da pokrenem xload program. Istovremeno ću moći da vidim grafički izlaz ovog programa na lokalnom računaru. Ovo se radi ovako:

ssh -X daljinski-sys

Pravi primjer:

Ssh -X [email protected] gedit

One. SSH se pokreće prekidačem -X. A onda program tek počinje. Pogledajte snimak ekrana.

Ja sam na Kali Linuxu. Uspješno se prijavljujem na udaljeni računar preko SSH-a. Nakon toga sam pokrenuo gedit program. Ovaj program možda nije dostupan čak ni na Kali Linuxu, ali svakako jeste u Linux Mintu, na koji sam se povezao. Mogu vidjeti rezultat ovog programa na ekranu kao da se program izvodi lokalno. Ali, opet, želim da ovo shvatite, na lokalnom računaru ne postoji pokrenut program gedit. Ako želim da sačuvam rezultat rada gedit-a (ili bilo kog drugog programa otvorenog na ovaj način), onda se ispostavi da radi u okruženju udaljenog računara, vidi njegov sistem datoteka itd. Ovo je zgodno kada želite da konfigurišete udaljeni računar pomoću grafičkog interfejsa...

Naučit ćete kako prenijeti sliku sa cijele radne površine u istom članku kasnije, u odjeljku "Kako konfigurirati VNC preko SSH-a".

Na nekim sistemima, ovaj "fokus" zahteva upotrebu opcije -Y umesto opcije -X.

Kopirajte sa / na udaljeni računar (scp i sftp)

scp

OpenSSH paket takođe uključuje dva programa koji koriste šifrovani SSH tunel za kopiranje datoteka preko mreže. Prvi program je scp("Sigurna kopija") - češće se koristi, kao i sličan program cp za kopiranje datoteka. Najuočljivija razlika je u tome što izvor datoteke može biti udaljeni host iza kojeg slijedi dvotočka i lokacija datoteke. Na primjer, ako želimo kopirati dokument pod nazivom document.txt iz našeg kućnog direktorija u sistem remote-sys u trenutnom radnom direktoriju na našem lokalnom sistemu, možemo učiniti ovo:

Scp remote-sys: document.txt. document.txt 100% 177 0.2KB / s 00:00

Pravi primjer:

# izbrišite datoteku na lokalnoj mašini, ako postoji rm dirlist.txt # kreirajte datoteku na udaljenoj ssh mašini [email protected]"ls *> dirlist.txt" # provjeri njegovo prisustvo ssh [email protected]"ls -l" # kopirajte ga na lokalni stroj scp [email protected]: dirlist.txt. # provjerite njegov sadržaj cat dirlist.txt

Da kopirate datoteku s lokalnog stroja na udaljenu:

scp datoteka-lokalni udaljeni-sys :.

Pravi primjer

# kreiraj novi touch fajl nfile.txt # pošalji scp fajl nfile.txt [email protected]:. nfile.txt 100% 0 0.0KB / s 00:00 # provjeri da li datoteka postoji na udaljenoj ssh mašini [email protected]"ls -l"

U naredbi za slanje:

  • nfile.txt - naziv datoteke,
  • [email protected]- korisničko ime i udaljeni host,
  • ... (tačka) znači da datoteku treba kopirati u trenutni radni direktorij na udaljenom serveru, dok će naziv datoteke ostati isti, tj. nfile.txt

dopis:

Da kopirate datoteku iz B u A kada ste prijavljeni na B:

scp / path / to / file [email protected]: / putanja / do / odredište

Kopiranje datoteke iz B u A kada ste prijavljeni na A:

scp [email protected]: / putanja / do / datoteke / staze / do / odredišta

sftp

Drugi program za kopiranje datoteka preko SSH-a je sftp... Kao što mu ime kaže, sigurna je zamjena za ftp programe. sftp radi kao originalni ftp program. Međutim, umjesto slanja u čistom tekstu, koristi se šifrirani SSH tunel. Važna prednost sftp-a nad ftp-om je ta što ne zahtijeva pokrenuti FTP server na udaljenom hostu. Potreban je samo SSH server. To znači da se svaka udaljena mašina koja je povezana preko SSH klijenta može koristiti i kao server sličan FTP-u. Evo primjera sesije:

[email protected]~ $ sftp [email protected] Povezano na 192.168.1.36. sftp> ls dirlist.txt newfile.txt nfile.txt temp Video zapisi Dokumenti Preuzimanja Slike Muzika Public Desktop Templates sftp> lls dirlist.txt nfile.txt sftp> ls temp temp / TakeMeHome sftp> cd get temp / sft mi / sftH temp / TakeMeHome to TakeMeHome sftp> ćao

SFTP protokol podržavaju mnogi grafički upravitelji datoteka koji se nalaze u Linux distribucijama. Koristeći i Nautilus (GNOME) i Konqueror (KDE), možemo unijeti URI-je (linkove) koji počinju sa sftp: // u navigacijsku traku i raditi s datotekama koje se nalaze na udaljenom sistemu koji pokreće SSH server.

Garant je pouzdani posrednik između Učesnika u transakciji.


Koristeći bezbedni SSH protokol, administratori se povezuju sa svojim serverima radi bezbednog rada. Razmotrimo detaljnije karakteristike ovog protokola:

Šta je SSH protokol

SSH protokol (od engleskog. Sigurna školjka) je kriptografski mrežni protokol dizajniran za daljinski pristup operativnom sistemu i implementaciju sigurnog daljinskog upravljanja unutar nezaštićene mreže (na primjer, putem Interneta).

SSH pruža siguran komunikacioni kanal između klijenta i servera, preko kojeg možete prenositi podatke (mail, video, fajlove), raditi u komandnoj liniji, daljinski pokretati programe, uključujući grafiku. SSH server mora biti instaliran na udaljenom operativnom sistemu. SSH klijent mora biti pokrenut na stroju s kojeg će se uspostaviti udaljena veza.

Glavne funkcije dostupne kada koristite SSH protokol:

  • Prijenos svih podataka preko sigurne SSH veze, uključujući kompresiju podataka za naknadnu enkripciju.
  • X11 prosljeđivanje je mehanizam koji vam omogućava da pokrenete UNIX / Linux serverske programe u obliku grafičke ljuske, baš kao u Windowsu (koristeći X Window System).
  • Prosljeđivanje portova je prijenos šifriranog prometa između portova na različitim strojevima.

Sigurnost SSH veze je osigurana:

  • enkripcija podataka pomoću jednog od postojećih algoritama
  • autentifikaciju servera i klijenta koristeći jedan od nekoliko dostupnih metoda
  • prisutnost dodatnih funkcija protokola usmjerenih na sprječavanje raznih hakerskih napada

Autentifikacija servera štiti od:

  • IP lažiranje, gdje jedan udaljeni host šalje pakete u ime drugog udaljenog hosta
  • lažiranje DNS zapisa (DNS spoofing), kada se lažira zapis na DNS serveru, zbog čega se uspostavlja veza sa hostom navedenim u lažnom zapisu umjesto potrebnog
  • presretanje otvorenih lozinki i drugih podataka koji se prenose u čistom tekstu preko uspostavljene veze

Danas postoje dvije verzije SSH protokola (SSH-1 i SSH-2), a druga verzija je poboljšana i proširena u odnosu na prvu. Na primjer, druga verzija je otporna na MITM napade ("čovjek u sredini", posrednički napad). Postoje i dva izdanja ovog protokola: otvorena verzija (besplatna) i komercijalna (plaćena). Besplatna verzija - OpenSSH - ugrađena je u sve operativne sisteme slične UNIX-u kao standardni SSH klijent i SSH serverski uslužni programi.

Komercijalnu implementaciju SSH protokola - SSH Communications Security - razvila je istoimena organizacija. Ima manje razlike u odnosu na besplatnu verziju, kao što su dostupnost komercijalne tehničke podrške, dostupnost alata za web upravljanje itd. Osnovni skup komandi i mogućnosti je skoro isti za oba proizvoda.

Za Windows su objavljeni različiti SSH klijenti i ljuske, od kojih su najčešći besplatni PuTTY i WinSCP. Drugi operativni sistemi takođe imaju svoje SSH klijente.

Šta je SFTP protokol

SFTP protokol (od engleskog. SSH protokol za prijenos datoteka) Je mrežni protokol na nivou aplikacije dizajniran za prijenos datoteka i drugih radnji s njima putem postojeće pouzdane veze. Protokol je razvijen kao SSH-2 ekstenzija za operacije datoteka preko sigurnog kanala, ali može raditi s drugim protokolima koji pružaju sigurnu vezu server-klijent. Drugim riječima, za pouzdan rad preko SFTP protokola potrebno je imati uspostavljenu sigurnu vezu (na primjer, SSH), koja autentifikuje klijenta i servera i utvrđuje činjenicu njihove pouzdanosti, budući da sam SFTP protokol ne vrši autentifikaciju i ne pruža sigurnost.

SFTP ima niz prednosti u odnosu na svoje prethodnike - FTP i SCP - kao što su prekid prijenosa datoteka, brisanje, nastavak prijenosa, povezivanje prenesenih datoteka s osnovnim atributima kao što su datum/vremenski žig i veća nezavisnost od platforme.

SFTP protokol se implementira preko SFTP servera i SFTP klijenta, koji su podsistemi OpenSSH-a.

Za šta se koriste SSH i SFTP protokoli?

Najčešće se SSH i SFTP koriste za daljinski rad s operativnim sistemom ili prijenos velikog broja datoteka.

Na primjer, klijent iznajmljuje server ili neki dio serverskog prostora. Postaje neophodno prenijeti postojeće klijentske podatke tamo, na primjer, web stranicu ili datoteke pošte. Provajder mora osigurati pouzdanost i brzinu razmjene podataka sa svojim serverom, posebno kada su u pitanju velike količine informacija i njihova visoka povjerljivost. U ovom slučaju, SSH server (sa ugrađenim SFTP protokolom) je instaliran na udaljenoj mašini (u ovom slučaju virtuelni server), a SSH klijent je instaliran na računaru klijenta. Kreira se SSH tunel, a komunikacija između klijenta i udaljenog servera se odvija preko pouzdane veze sa svim prednostima gore opisanog protokola.

SSH se također može koristiti za daljinski rad preko bezbedne veze sa raznim uslugama provajdera, kao što su softver, operativni sistemi itd.

Kako SSH radi

SSH protokol pokreće skup programa koji se koriste za izvođenje različitih radnji na udaljenom operativnom sistemu. Na primjer, sshd program pruža SSH funkcionalnost na strani servera i mora biti pokrenut na SSH serveru. SSH program radi na SSH klijentu i omogućava vam da se povežete na udaljeni host, prijavite se na njega i radite sa udaljenom mašinom putem SSH veze.

Postoje posebne komande sa skupom različitih opcija za pokretanje određenih programa SSH protokola. Ove naredbe se mogu razlikovati ovisno o klijentskom operativnom sistemu i SSH klijentskoj ljusci koju koristite. Komande se pokreću ili iz komandne linije za sisteme slične UNIX-u, ili preko grafičkog interfejsa u odgovarajućim SSH školjkama.

Kako se povezati preko SSH-a

Ako vaš računar radi pod Windowsom, a udaljena mašina je sistem sličan UNIX-u (na primjer, Linux), možete koristiti PuTTY da uspostavite SSH vezu. Ovaj besplatni program za Windows sastoji se od jedne izvršne datoteke i ne zahtijeva instalaciju.

Da biste uspostavili vezu koristeći PuTTY, trebate učiniti sljedeće.

Pokrenite PuTTY (putty.exe).


Podrazumevano, ne morate vršiti nikakva dodatna podešavanja, možete se uveriti da su 22. port i tip veze specificirani kao SSH. U polje Host Name (ili IP adresa) unesite ime udaljenog računara ili njegovu IP adresu i kliknite na dugme Otvori.


Sigurnosno upozorenje PuTTY može se pojaviti, ali ako ste sigurni da je host pouzdan, tada morate kliknuti Da i nastaviti vezu.


U komandnoj liniji koja se pojavi potrebno je da unesete korisničko ime pod kojim ćete se prijaviti na udaljeni računar.


U sljedećem redu morate unijeti lozinku za ovog korisnika. Kada unesete lozinku, u komandnoj liniji se ne prikazuju nikakvi znakovi, tako da samo trebate upisati lozinku i pritisnuti tipku Enter. Ako se korisničko ime i lozinka unesu pogrešno, prikazaće se greška „Pristup odbijen“, ako je veza uspešna, obezbeđena je komandna linija udaljenog računara.


SSH (Secure Shell) je mrežni protokol dizajniran za daljinsku kontrolu servera i prijenos podataka preko šifriranih TCP veza. Većina hosting lokacija, čak i virtualnih, danas pružaju i FTP i SSH pristup. Po mom mišljenju, ovo je odlično, SSH je mnogo praktičniji i sigurniji za korištenje.

Postavljanje SSH-a

Konfiguracija će se obaviti za namjenski server, VDS, VPS na Debianu, Ubuntu. Konfiguracijski fajl se nalazi ovdje: / etc / ssh / sshd_config.
Ako imate običan hosting, sve bi trebalo biti konfigurirano kako treba, idite na odjeljak.

Podrazumevano, SSHD daemon (mi pravimo promene u njemu) ne treba nikakva podešavanja i radi dobro. Napravit ćemo samo nekoliko malih promjena kako bismo ograničili pristup neželjenim osobama serveru.

Kao rezultat unošenja pogrešnih izmjena u konfiguracijskoj datoteci, možete izgubiti pristup serveru putem ssh-a, pa se pobrinite da imate alternativne opcije za pristup, na primjer, korištenjem kontrolne table ISPManager.

Kako ograničiti SSH pristup

Sve promjene se vrše u / etc / ssh / sshd_config
Da bi promjene stupile na snagu, morate

Promijeni port

Luka 9724

Sada, prilikom autorizacije, trebate navesti 9724 umjesto standardnog 22 porta.
Metoda je vrlo jednostavna i učinkovita protiv većine jednostavnih hakerskih botova koji kucaju na standardne portove. Ovdje je glavna stvar ne stvoriti sukob s drugim uslugama i pokupiti namjerno neiskorišteni broj.

Odbijte komunikaciju koristeći stari protokol

Ovdje definiramo da je komunikacija moguća samo korištenjem v2 protokola

Ako niste prijavljeni pod root, prije svih komandi konzole morate dodati sudo - to je skraćenica za Zamijenite korisnika i DO- promijenite korisnika i uradite (ispod njega). Na primjer, omogućava vam da izvršavate naredbe u ime superkorisnika root.

Smanjite broj pokušaja autorizacije

MaxAuthTries 2

Broj pokušaja unosa lozinke. Podrazumevano 6. Ako pretraga ne uspije, komunikacijska sesija se prekida.

Smanjite vremensko ograničenje autorizacije

PrijavaGraceTime 30s

Podrazumevano, sesija autorizacije može trajati 120 sekundi. Na kraju ovog vremena, prekida se. 2 minuta za autorizaciju je previše, sve ovo vrijeme server drži vezu otvorenom, što je vrlo neracionalno. Za oči je dovoljno pola minute.

Zatvorite IP pristup

Ako vam je potreban samo pristup, najjednostavniji i najpouzdaniji način je blokiranje pristupa s bilo kojeg mjesta osim vašeg IP-a ili, ako je dinamičan, onda IP raspona.

  1. Otvorite /etc/hosts.allow i dodajte SSHD tamo: 192.168.1.1

    gdje je 192.168.1.1 vaš IP. Ako imate dinamičku IP adresu, definirajte IP sa podmrežnom maskom i zapišite svoju podmrežu umjesto IP-a, na primjer:

    SSHD: 192.168.0.0/16

  2. Otvorite /etc/hosts.deny i dodajte tamo: SSHD: SVE

Drugi način za ograničavanje pristupa putem IP-a

Možete koristiti sljedeću direktivu:

AllowUsers = *@1.2.3.4

Ovdje dozvoljavamo pristup samo za IP 1.2.3.4

Autorizacija SSH ključa

Biće mnogo sigurnije, praktičnije i ispravnije konfigurisati ssh autorizaciju bez lozinke. Za to će se koristiti autorizacija ključa.

Dakle, evo instrukcije:

Veza je uspostavljena. Ako ste nešto pogriješili, server je odbio da se naša greška ključa pojavi prilikom autorizacije, tj Server nije prihvatio naš ključ... U tom slučaju, prođite kroz sve tačke uzastopno i potražite grešku.

Top srodni članci