Kako postaviti pametne telefone i računala. Informativni portal

Povezivanje putem ssh linux terminala. Što se može promijeniti u SSH postavkama

Postoji mnogo mogućnosti za organiziranje udaljenog pristupa vašem računalu putem internetske 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 svladati čak i neiskusni korisnici. Već smo pisali o nekoliko metoda, posebice o programu TeamViewer i VNC protokolu.

Nijanse rada sa SSH protokolom u Ubuntuu.

U ovom ćemo članku govoriti o SSH protokolu sigurnog povezivanja, koji je nedavno postao gotovo standard među korisnicima Linuxa. Vrlo je siguran jer podržava enkripciju i vrlo ga je lako konfigurirati. Pogledat ćemo značajke SSH protokola, a također ćemo naučiti kako konfigurirati poslužitelj i klijent. Sve što će se od vas tražiti je računalo s instaliranim Ubuntu operativnim sustavom i internetskom vezom.

Protokol Secure Shell, također poznat kao SSH, poseban je protokol za siguran udaljeni pristup računalu preko mrežne veze. Protokol ima mnoge mogućnosti, uključujući postavljanje sigurne veze, pokretanje naredbenog retka terminala na računalu 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 sustavu najpoznatiji je Open SSH. To je potpuno besplatan proizvod s otvorenom licencom i punim skupom bitnih funkcija. Klijent za upravljanje SSH vezom je već uključen u Ubuntu distribuciju, samo trebate instalirati i konfigurirati komponente poslužitelja. Upravljanje se provodi putem naredbi u terminalu.

Instalacija SSH-a na Ubuntu

Budući da je SSH klijentski protokol prihvaćeni standard za upravljanje njime, možete ga instalirati pomoću kratke naredbe u Ubuntu terminalu. da biste to učinili, pokrenite sam terminal pritiskom na kombinaciju tipki na tipkovnici Ctrl + Alt + T, a zatim upotrijebite naredbu sudo apt-get install ssh. Nakon pripreme za preuzimanje, uslužni program će vas pitati želite li nastaviti. prebacite tipkovnicu na ruski i pritisnite D. Na vašem Ubuntu stroju, ssh instalacija će biti gotova za nekoliko sekundi. Ako želite omogućiti automatsko pokretanje pri pokretanju sustava, koristite naredbu sudo systemctl enable sshd. prema tome, ako kasnije želite onemogućiti automatsko pokretanje usluge, trebat će vam naredba sudo systemctl disable sshd.

Sada možete provjeriti kako sve funkcionira. Dovoljno je pokušati se povezati s lokalnim SSH poslužiteljem: ssh localhost. Uslužni program će tražiti lozinku superkorisnika, a također će ponuditi dodavanje unesene adrese na popis dopuštenih. Ako vam sve funkcionira prema očekivanjima, vidjet ćete malu poruku koja završava obaviješću o datumu posljednjeg povezivanja na adresu.

Sada se možete spojiti na bilo koje računalo 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 se želite povezati s računalom Vasye Pupkin s adresom 132.14.25.10, naredba će izgledati ovako:

ssh [e-mail zaštićen]

Postavljanje SSH-a na Ubuntu

Za ispravan i siguran rad sa SSH poslužiteljem, morate ga konfigurirati 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. Sustav će vas obavijestiti o nedostatnim pravima, a promjene jednostavno nećete moći spremiti. Stoga vam je opet potreban terminal i poznavanje nekoliko naredbi, o kojima ćemo sada govoriti. Prođimo kroz potrebne korake za postavljanje ssh poslužitelja na Ubuntu operativnom sustavu.


Što se može promijeniti u SSH postavkama


Minimum potrebnih naredbi


Ovo će biti serija članaka o instalaciji i konfiguraciji jednostavnog poslužitelja za tim za razvoj weba. Poslužitelj će imati Git, FTP, SSH, Apache 2, PHP 5.4, MySQL, cron, poddomene, memcached, Composer. Članci će se primijeniti na Ubuntu 14.04. Vjerujem da će se poslužitelj koristiti u korporativne svrhe, a ne za finalne projekte. Iako, ako je dopušteno da projekt bude na dev serveru, zašto ne ...

Odmah ću rezervirati. Nemam dovoljno iskustva u administraciji poslužitelja i ne radim to profesionalno, tako da ne jamčim 100% ispravnost dolje opisanih radnji. Uputa je podsjetnik za brzo postavljanje poslužitelja za moje potrebe. Ako vidite očitu pogrešku ili "ovo se ne bi trebalo raditi u produkciji" (iako sam odredio da se projekti ne smiju držati 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 poslužitelju (na primjer na VPS/VDS) i da imate pristup root konzoli.

  1. Korisnici i SSH

Započnimo.

Korisnici poslužitelja

Prvo, kratki popis naredbi za rad s 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

Povratak na korijen:

Promijenite početni imenik

usermod -d potreban_imenik Korisničko ime

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

chown -R Korisničko ime:imenik grupe

Odlučite se o korisnicima

  • mygit - pokazati kako se radi s Git repozitorijumima;
  • myftp - za demonstraciju rada s FTP-om;
  • myssh - pokazati kako se radi sa SSH-om.

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

SSH

Priprema

Instalacija OpenSSH klijenta i poslužitelja izvodi se 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 trebala bi izgledati ovako:

Ssh -p LUKA login @ server

Možete ponovno pokrenuti SSH poslužitelj naredbom:

Ponovno pokretanje servisa ssh

Klijenti

Korisnici koji će se spojiti na poslužitelj putem SSH-a ili Gita (preko SSH-a) moraju imati instaliran SSH klijent i generirane ključeve. Možete provjeriti je li ključ generiran po prisutnosti datoteke ~ / .ssh / id_rsa.pub... Ako nije, trebate ga generirati, na primjer, pomoću sljedeće naredbe:

Ssh-keygen -t rsa -C " [e-mail zaštićen] poslužitelj"

Lozinka se može izostaviti.

Zatim dodajte ključ u ssh-agent:

Ssh-add ~ / .ssh / id_rsa

Autorizacija ključa

Kako svaki put kada se povežete na SSH i Git (radit će i kod nas preko SSH) ne unesete lozinku, trebate kreirati datoteku ~ / .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 se početnom direktoriju izvode radnje. Ili nakon toga postavite odgovarajuća prava, grupu i vlasnika. To također treba imati na umu kada mijenjate datoteku authorized_keys u budućnosti.

U ovoj datoteci u svakom retku treba biti sadržaj javnog ključa ( ~ / .ssh / id_rsa.pub) klijenata ovog korisnika. Na kraju datoteke authorized_keys trebao bi biti prazan redak.

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

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

Predstavljamo Vam novi tečaj iz tima The codeby- "Testiranje penetracije web aplikacija od nule". Opća teorija, priprema radnog okruženja, pasivno fuzziranje i otisak prstiju, aktivno fuzziranje, ranjivosti, post-eksploatacija, alati, društveni inženjering i još mnogo toga.


Što je SSH i čemu služi

Secure Shell (SSH) je mrežni protokol koji pruža funkcionalnost ljuske udaljenom računalu preko sigurnog kanala. SSH donosi razna sigurnosna poboljšanja, uključujući autentifikaciju korisnika/domaćina, enkripciju podataka i integritet podataka, što onemogućuje 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 SSH protokola otvorenog koda koji šifrira mrežnu vezu pomoću niza programa. Ako želite imati SSH na Linuxu, možete instalirati OpenSSH, koji se sastoji od OpenSSH poslužitelja i klijentskih paketa.

OpenSSH poslužiteljski / klijentski paketi dolaze sa sljedećim uslužnim programima:

  • OpenSSH poslužitelj: 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 provjeru autentičnosti), ssh-keygen (upravljanje ključem za provjeru autentičnosti ).

Instalacija OpenSSH poslužitelja i klijenta na Linux

Ako želite instalirati OpenSSH poslužitelj/klijent i postaviti OpenSSH poslužitelj za automatsko pokretanje, slijedite upute u nastavku, koje se razlikuju ovisno o distribuciji.

Debian, Ubuntu ili Linux Mint

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

Na sustavima temeljenim na Debianu, odmah nakon instalacije, OpenSSH će se automatski pokrenuti pri pokretanju. Ako se iz nekog razloga OpenSSH poslužitelj ne pokrene automatski pri pokretanju sustava, možete pokrenuti sljedeću naredbu da nedvosmisleno dodate ssh u podizanje sustava pri pokretanju sustava.

$ 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

Postavljanje OpenSSH poslužitelja

Ako želite konfigurirati OpenSSH poslužitelj, možete urediti konfiguracijsku datoteku za cijeli sustav koja se nalazi u / etc / ssh / sshd_config.

Postoji nekoliko OpenSSH opcija koje bi vas mogle zanimati:

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

Slušajte Adresa 192.168.1.1

Ako vaš stroj ima više od jednog fizičkog mrežnog sučelja, možda biste željeli provjeriti koje je povezano s sshd-om, za to možete koristiti opciju ListenAddress. Ova opcija pomaže poboljšati sigurnost ograničavanjem dolaznog SSH-a samo putem određenog sučelja.

HostKey / etc / ssh / ssh_host_key

Opcija HostKey određuje gdje se nalazi osobni ključ glavnog računala.

PermitRootLogin br

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

AllowUsers alice bob

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

Nakon izmjene / etc / ssh / sshd_config, svakako ponovno pokrenite ssh uslugu.

Za ponovno pokretanje OpenSSH na Debianu, Ubuntuu ili Linux Mintu:

$ sudo /etc/init.d/ssh restart

Za ponovno pokretanje OpenSSH na Fedora, CentOS / RHEL 7 ili Arch Linux:

$ sudo systemctl ponovno pokrenite sshd.service

Za ponovno pokretanje OpenSSH na CentOS / RHEL 6:

$ sudo service sshd restart

Kako se spojiti 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 sam preferiram i preporučujem Cygwin.

Cygwin nije samo SSH klijent. To je moćan kombajn koji podržava mnoge Linux naredbe. Na primjer, vrlo je jednostavno stvoriti SSL certifikate u Cygwinu (baš kao u Linuxu). U sustavu Windows morate plesati s tamburom da biste stvorili samopotpisane certifikate. Cygwin je vrlo zgodan za korištenje cURL-a (ne morate ništa posebno instalirati) itd. Oni kojima nedostaje naredbeni redak i Linux programi na Windowsima 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 instalacijski program. 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 "Dalje". Možda samo sljedeći prozor može biti zbunjujući:

Ovdje su svi artikli dostupni za ugradnju. Ne moramo ih sada razumjeti. Budući da su najtraženiji već označeni za ugradnju. A ako nešto nedostaje u budućnosti, onda možete jednostavno instalirati potrebnu.

SSH veza (uobičajeno za Linux i Windows)

Korisnici Linuxa otvaraju konzolu, Windows korisnici upisuju Cygwin.

SSH treba 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 korisnik nije naveden, tada se koristi isto ime kao u sustavu iz kojeg se uspostavlja veza. Na primjer, adresa hosta za vezu je 192.168.1.36. Ako tipkam

Ssh 192.168.1.36

Vidim sljedeće

[e-mail zaštićen]~ $ ssh 192.168.1.36 Autentičnost hosta "192.168.1.36 (192.168.1.36)" se ne može "utvrditi. Otisak ključa ECDSA je SHA256: sIxZeSuiivoEQ00RXAQHxylxuEA8p8r jeste li sigurni da se želite povezati.

Budući da se prvi put povezujem s hostom, to je nepoznati host. Pitaju me želim li nastaviti. tipkam Da:

Upozorenje: Trajno dodan "192.168.1.36" (ECDSA) na popis poznatih hostova. [e-mail zaštićen]"s lozinka:

U redu, host 192.168.1.36 je dodan na popis poznatih hostova. Od mene se traži lozinka za korisnika Alex. Pošto na serveru sa SSH nema takvog korisnika, ali kliknem Ctrl + C(za prekid) i unesite naredbu zajedno s korisničkim imenom udaljenog sustava. Korisnik se upisuje ispred adrese udaljenog stroja i od adrese se odvaja simbolom @. Simbol @ na engleskom se čita kao at i može se prevesti kao "in". Oni. snimanje [e-mail zaštićen] može se protumačiti kao "korisnički mial na stroju 192.168.1.36".

Ssh [e-mail zaštićen]

Poziv [e-mail zaštićen] ustupio mjesto pozivu [e-mail zaštićen] To znači da smo već na udaljenom stroju, odnosno da već imamo vezu. Ako trebate navesti port (ako se razlikuje od standardnog), tada se port mora navesti nakon prekidača -p. Na primjer ovako:

Ssh [e-mail zaštićen]-str 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; točni uvjeti distribucije za svaki program opisani su u pojedinačnim datotekama u /usr / share / doc / * / copyright. Debian GNU / Linux dolazi s APSOLUTNO NIKAKvim JAMSTVO, u mjeri u kojoj to dopušta mjerodavni zakon. Zadnja prijava: Uto, 16. lipnja 15:32:25 2015. od 192.168.1.35

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

Upišimo nekoliko naredbi kako bismo bili sigurni gdje smo i tko smo: osoba, uname -a itd.:

Da biste prekinuli sesiju (prekinuli vezu), upišite

Ili pritisnite Ctrl + D.

Prijavite se na SSH bez unosa lozinke

Prvo, jednostavno je prikladnije. Drugo, sigurnije je.

Prvo, moramo stvoriti 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 također sve u redu.

Ako ste se uspjeli prijaviti na udaljeni sustav, odjavite se. Zatim upišite

Ssh-keygen -t rsa

Od nas se traži naziv datoteke, ne treba ništa unositi, koristit će se zadani naziv. Također se traži lozinka. Ne unosim lozinku.

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

Ssh [e-mail zaštićen] mkdir .ssh

Sada moramo kopirati sadržaj datoteke id_rsa.pub na udaljeni stroj. To je vrlo jednostavno učiniti (ne zaboravite promijeniti podatke u svoje):

Mačka .ssh / id_rsa.pub | ssh [e-mail zaštićen]"mačka >> .ssh / autorizirani_ključevi"

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

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

Osim otvaranja sesije ljuske na udaljenom sustavu, ssh također omogućuje izvršavanje pojedinačnih naredbi na udaljenom sustavu. Na primjer, da biste pokrenuli naredbu stabla na udaljenom hostu pod nazivom remote-sys i prikazali rezultate na lokalnom sustavu, učinili biste ovo:

ssh daljinsko-sys stablo

Moj primjer iz stvarnog života:

Ssh [e-mail zaštićen] stablo

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

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

Pravi primjer:

Ssh [e-mail zaštićen]"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; budući da nam je ovo izvršenje potrebno na udaljenom sustavu. Također, ako želimo preusmjeriti standardni izlaz u datoteku na udaljenom računalu, možemo staviti naredbu preusmjeravanja i naziv datoteke unutar jednostrukih navodnika:

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

Slanje standardnog izlaza s lokalnog računala na udaljeni ssh

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

Mačka .ssh / id_rsa.pub | ssh [e-mail zaštićen]"mačka >> .ssh / autorizirani_ključevi"

  • Naredba cat čita i prikazuje sadržaj .ssh / id_rsa.pub datoteke na lokalnom stroju red po redak.
  • | (pipe) prosljeđuje ono što bi se trebalo pojaviti na stdout-u drugoj naredbi.
  • Umjesto naredbe koja je trebala obraditi linije koje su joj proslijeđene, uspostavlja se veza s udaljenim sustavom (ssh [e-mail zaštićen]).
  • Udaljeni sustav prima linije za koje je osigurana naredba cat >> .ssh / authorized_keys. Oni. sadržaj standardnog izlaza upisuje se red po red u datoteku .ssh / authorized_keys na udaljenom računalu.

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

Sljedeći trik zahtijeva dva Linux računala. Nažalost, čak ni Cygwin ne može podnijeti ovaj trik. Štoviše, oba Linuxa moraju imati grafičko korisničko sučelje.

Tuneliranje sa SSH-om

Između ostalog, ono što se događa kada se uspostavi veza s udaljenim hostom putem SSH-a je stvaranje šifriranog tunela koji se formira između lokalnog i udaljenog sustava. Obično se ovaj tunel koristi kako bi se osiguralo da se naredbe upisane na lokalnom računalu sigurno prenose na udaljeni stroj, a rezultat se također sigurno šalje natrag.

Uz ovu osnovnu funkciju, SSH omogućuje preusmjeravanje većine vrsta prometa preko šifriranog tunela, stvarajući neku vrstu VPN-a (virtualne privatne mreže) između lokalnog i udaljenog sustava.

Možda najčešće korištena od ovih značajki je mogućnost emitiranja prometa X Window sustava. Na sustavu koji pokreće X poslužitelj (to su strojevi koji imaju grafičko korisničko sučelje) moguće je pokrenuti X klijentski program (grafička aplikacija) na udaljenom sustavu i vidjeti rezultate njegovog rada na lokalnom sustavu. Ovo je lako učiniti. Na primjer, želim se povezati s udaljenim hostom remote-sys i na njemu želim pokrenuti program xload. Istovremeno ću moći vidjeti grafički izlaz ovog programa na lokalnom računalu. To se radi ovako:

ssh -X daljinski-sys

Pravi primjer:

Ssh -X [e-mail zaštićen] gedit

Oni. SSH se pokreće prekidačem -X. A onda program tek počinje. Pogledajte snimku zaslona.

Ja sam na Kali Linuxu. Uspješno se prijavljujem na udaljeno računalo putem SSH-a. Nakon toga sam pokrenuo gedit program. Ovaj program možda čak nije dostupan na Kali Linuxu, ali sigurno je 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čunalu ne postoji pokrenut program gedit. Ako želim spremiti rezultat rada gedit-a (ili bilo kojeg drugog programa otvorenog na ovaj način), onda se ispostavi da radi u okruženju udaljenog računala, vidi njegov datotečni sustav itd. To je zgodno kada želite konfigurirati udaljeno računalo pomoću grafičkog sučelja...

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

Na nekim sustavima ovaj "fokus" zahtijeva korištenje opcije -Y umjesto opcije -X.

Kopiraj sa / na udaljeno računalo (scp i sftp)

scp

OpenSSH paket također uključuje dva programa koji koriste šifrirani 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 nakon kojeg slijedi dvotočka i lokacija datoteke. Na primjer, ako želimo kopirati dokument pod nazivom document.txt iz našeg matičnog direktorija u sustav udaljenog sustava u trenutnom radnom direktoriju na našem lokalnom sustavu, možemo učiniti ovo:

Scp remote-sys: document.txt. document.txt 100% 177 0,2 KB / s 00:00

Pravi primjer:

# izbrišite datoteku na lokalnom računalu, ako postoji rm dirlist.txt # kreirajte datoteku na udaljenom ssh stroju [e-mail zaštićen]"ls *> dirlist.txt" # provjerite njegovu prisutnost ssh [e-mail zaštićen]"ls -l" # kopirajte ga na lokalni stroj scp [e-mail zaštićen]: dirlist.txt. # provjerite njegov sadržaj cat dirlist.txt

Za kopiranje datoteke s lokalnog računala na udaljeni:

scp datoteka-lokalni udaljeni-sys :.

Pravi primjer

# stvori novu datoteku dodira nfile.txt # pošalji scp datoteku nfile.txt [e-mail zaštićen]:. nfile.txt 100% 0 0.0KB / s 00:00 # provjerite postoji li datoteka na udaljenom ssh stroju [e-mail zaštićen]"ls -l"

U naredbi za slanje:

  • nfile.txt - naziv datoteke,
  • [e-mail zaštićen]- korisničko ime i udaljeni host,
  • ... (točka) znači da datoteku treba kopirati u trenutni radni direktorij na udaljenom poslužitelju, dok će naziv datoteke ostati isti, tj. nfile.txt

dopis:

Za kopiranje datoteke iz B u A kada ste prijavljeni na B:

scp / put / do / datoteke [e-mail zaštićen]: / put / do / odredište

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

scp [e-mail zaštićen]: / put / do / datoteke / staze / do / odredišta

sftp

Drugi program za kopiranje datoteka preko SSH-a je sftp... Kao što mu ime govori, 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 u odnosu na ftp je da ne zahtijeva pokrenuti FTP poslužitelj na udaljenom hostu. Zahtijeva samo SSH poslužitelj. To znači da se bilo koji udaljeni stroj koji je povezan putem SSH klijenta također može koristiti kao poslužitelj sličan FTP-u. Evo primjera sesije:

[e-mail zaštićen]~ $ sftp [e-mail zaštićen] Povezano na 192.168.1.36. sftp> ls dirlist.txt newfile.txt nfile.txt temp Video zapisi Dokumenti Preuzimanja Slike Glazba Public Desktop Templates sftp> lls dirlist.txt nfile.txt sftp> ls temp temp / TakeMeHome sftp> cd temp / sftp> cd get temp / sftH p temp / TakeMeHome to TakeMeHome sftp> bok

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

Jamac je pouzdani posrednik između sudionika u transakciji.


Koristeći siguran SSH protokol, administratori se povezuju na svoje poslužitelje radi sigurnog rada. Razmotrimo detaljnije značajke ovog protokola:

Što je SSH protokol

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

SSH pruža siguran komunikacijski kanal između klijenta i poslužitelja, putem kojeg možete prenositi podatke (pošta, video, datoteke), raditi u naredbenom retku, daljinski pokretati programe, uključujući grafiku. SSH poslužitelj mora biti instaliran na udaljenom operativnom sustavu. SSH klijent mora biti pokrenut na računalu s kojeg će se uspostaviti udaljena veza.

Glavne funkcije dostupne pri korištenju SSH protokola:

  • Prijenos svih podataka putem sigurne SSH veze, uključujući kompresiju podataka za naknadnu enkripciju.
  • X11 prosljeđivanje je mehanizam koji vam omogućuje pokretanje UNIX / Linux poslužiteljskih programa u obliku grafičke ljuske, baš kao u Windowsima (koristeći X Window System).
  • Prosljeđivanje portova je prijenos šifriranog prometa između portova na različitim strojevima.

Sigurnost SSH veze osigurava:

  • šifriranje podataka pomoću jednog od postojećih algoritama
  • autentifikaciju poslužitelja i klijenta pomoću jedne od nekoliko dostupnih metoda
  • prisutnost dodatnih funkcija protokola usmjerenih na sprječavanje raznih hakerskih napada

Provjera autentičnosti poslužitelja š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 poslužitelju, uslijed čega se uspostavlja veza s hostom navedenim u lažnom zapisu umjesto potrebnog
  • presretanje otvorenih lozinki i drugih podataka koji se prenose u čistom tekstu putem 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 ("man in the middle", middleman attack). Postoje i dva izdanja ovog protokola: otvorena verzija (besplatna) i komercijalna (plaćena). Besplatna verzija - OpenSSH - ugrađena je u sve operativne sustave slične UNIX-u kao standardni SSH klijent i SSH poslužiteljski 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 upravljanje webom itd. Osnovni skup naredbi i mogućnosti gotovo je isti za oba proizvoda.

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

Što je SFTP protokol

SFTP protokol (od engleskog. SSH protokol za prijenos datoteka) Je li mrežni protokol na razini 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 između poslužitelja i klijenta. Drugim riječima, za pouzdan rad putem SFTP protokola potrebno je imati uspostavljenu sigurnu vezu (na primjer, SSH), koja autentificira klijenta i poslužitelja i utvrđuje činjenicu njihove pouzdanosti, budući da sam SFTP protokol ne provjerava autentičnost. 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 neovisnost od platforme.

SFTP protokol se implementira preko SFTP poslužitelja i SFTP klijenta, koji su podsustavi OpenSSH-a.

Za što se koriste SSH i SFTP protokoli?

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

Na primjer, klijent iznajmljuje poslužitelj ili neki dio poslužiteljskog prostora. Postaje potrebno tamo prenijeti postojeće podatke o klijentu, na primjer, web stranicu ili datoteke pošte. Davatelj mora osigurati pouzdanost i brzinu razmjene podataka sa svojim poslužiteljem, posebice kada je riječ o velikim količinama informacija i njihovoj visokoj povjerljivosti. U ovom slučaju, SSH poslužitelj (s ugrađenim SFTP protokolom) je instaliran na udaljenom računalu (u ovom slučaju virtualni poslužitelj), a SSH klijent je instaliran na klijentskom računalu. Stvara se SSH tunel, a komunikacija između klijenta i udaljenog poslužitelja odvija se preko pouzdane veze sa svim prednostima gore opisanog protokola.

SSH se također može koristiti za daljinski rad preko sigurne veze s raznim uslugama davatelja, kao što su softver, operativni sustavi itd.

Kako SSH radi

SSH protokol pokreće skup programa koji se koriste za izvođenje različitih radnji na udaljenom operativnom sustavu. Na primjer, sshd program pruža SSH funkcionalnost na strani poslužitelja i mora se izvoditi na SSH poslužitelju. SSH program radi na SSH klijentu i omogućuje vam da se povežete s udaljenim hostom, prijavite se na njega i radite s udaljenim strojem putem SSH veze.

Postoje posebne naredbe sa skupom različitih opcija za pokretanje određenih programa SSH protokola. Ove se naredbe mogu razlikovati ovisno o klijentskom operativnom sustavu i SSH klijentskoj ljusci koju koristite. Naredbe se pokreću ili iz naredbenog retka za sustave slične UNIX-u ili kroz grafičko sučelje u odgovarajućim SSH školjkama.

Kako se povezati putem SSH-a

Ako vaše računalo radi sa sustavom Windows, a udaljeni stroj je sustav sličan UNIX-u (na primjer, Linux), možete koristiti PuTTY za uspostavljanje SSH veze. 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).


Prema zadanim postavkama, ne morate napraviti nikakve dodatne postavke, možete se pobrinuti da su 22. port i vrsta veze navedeni kao SSH. U polje Host Name (ili IP adresa) unesite naziv udaljenog računala ili njegovu IP adresu i kliknite gumb Otvori.


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


U naredbeni redak koji se pojavi potrebno je unijeti korisničko ime pod kojim ćete se prijaviti na udaljeno računalo.


U sljedećem retku morate unijeti lozinku za ovog korisnika. Kada unesete lozinku, u naredbenom retku se ne prikazuju znakovi, pa samo trebate upisati lozinku i pritisnuti tipku Enter. Ako su korisničko ime i lozinka pogrešno uneseni, prikazat će se pogreška "Pristup odbijen", ako je veza uspješna, daje se naredbeni redak udaljenog računala.


SSH (Secure Shell) je mrežni protokol dizajniran za daljinsko upravljanje poslužiteljem i prijenos podataka preko šifriranih TCP veza. Većina hosting stranica, čak i virtualnih, danas pružaju i FTP i SSH pristup. Po mom mišljenju, ovo je super, SSH je puno praktičniji i sigurniji za korištenje.

Postavljanje SSH-a

Konfiguracija će se obaviti za namjenski poslužitelj, VDS, VPS na Debianu, Ubuntu. Konfiguracijska datoteka nalazi se ovdje: / etc / ssh / sshd_config.
Ako imate redoviti hosting, sve bi trebalo biti konfigurirano kako treba, idite na odjeljak.

Prema zadanim postavkama, SSHD daemon (mi ga mijenjamo) ne treba nikakve postavke i radi dobro. Učinit ćemo samo nekoliko malih promjena kako bismo ograničili pristup neželjenim osobama poslužitelju.

Kao rezultat pogrešnih promjena u konfiguracijskoj datoteci, možete izgubiti pristup poslužitelju putem ssh-a, stoga provjerite imate li alternativne mogućnosti za pristup, na primjer, korištenjem upravljačke ploče 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.

Odbiti komunikaciju koristeći stari protokol

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

Ako niste prijavljeni pod korijen, prije svih naredbi konzole morate dodati sudo - to je skraćenica za Zamijenite korisnika i DO- promijeniti korisnika i učiniti (ispod njega). Na primjer, omogućuje vam izvršavanje naredbi u ime superkorisnika korijen.

Smanjite broj pokušaja autorizacije

MaxAuthTries 2

Broj pokušaja unosa lozinke. Prema zadanim postavkama 6. Ako pretraživanje ne uspije, komunikacijska sesija se prekida.

Smanjite vremensko ograničenje autorizacije

PrijavaGraceTime 30s

Prema zadanim postavkama, sesija autorizacije može trajati 120 sekundi. Na kraju tog vremena prekida se. 2 minute za autorizaciju je previše, cijelo to vrijeme poslužitelj drži vezu otvorenom, što je vrlo neracionalno. Za oči je dovoljno pola minute.

Zatvorite IP pristup

Ako vam je potreban 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 tamo dodajte SSHD: 192.168.1.1

    gdje je 192.168.1.1 vaš IP. Ako imate dinamički IP, definirajte IP s maskom podmreže i zapišite svoju podmrežu umjesto IP-a, na primjer:

    SSHD: 192.168.0.0/16

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

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

Možete koristiti sljedeću direktivu:

DopustiKorisnike = *@1.2.3.4

Ovdje dopuštamo pristup samo za IP 1.2.3.4

Autorizacija SSH ključa

Bit će puno sigurnije, praktičnije i ispravnije konfigurirati ssh autorizaciju bez lozinke. Za to će se koristiti autorizacija ključa.

Dakle, evo upute:

Veza je postavljena. Ako ste nešto pogriješili, poslužitelj je odbio naš ključ pogreške će se pojaviti tijekom autorizacije, tj Poslužitelj nije prihvatio naš ključ... U tom slučaju prođite kroz sve točke uzastopno i potražite pogrešku.

Vrhunski povezani članci