Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Lidhja përmes terminalit ssh linux. Çfarë mund të ndryshoni në cilësimet SSH?

Ka shumë mundësi për të organizuar qasje në distancë në kompjuterin tuaj nëpërmjet një lidhjeje interneti. Disa prej tyre janë shumë komplekse dhe përdoren vetëm nga specialistë në një mjedis profesional, ndërsa të tjerët janë shumë të thjeshtë dhe mund të zotërohen edhe nga përdorues të papërvojë. Ne kemi shkruar tashmë për disa metoda, në veçanti, për programin TeamViewer dhe protokollin VNC.

Nuancat e punës me protokollin SSH në Ubuntu.

Në këtë artikull do të flasim për protokollin e lidhjes së sigurt SSH, i cili kohët e fundit është bërë pothuajse një standard midis përdoruesve të Linux. Është shumë i sigurt pasi mbështet enkriptimin dhe është gjithashtu shumë i lehtë për t'u konfiguruar. Ne do të shikojmë veçoritë e protokollit SSH, dhe gjithashtu do të mësojmë se si të konfigurojmë serverin dhe klientin. Gjithçka që do t'ju kërkohet është të keni një kompjuter me sistemin operativ Ubuntu të instaluar dhe një lidhje interneti.

Protokolli Secure Shell, i njohur gjithashtu si SSH, është një protokoll i veçantë për qasje të sigurt në distancë në një kompjuter nëpërmjet lidhje rrjeti. Protokolli ka shumë aftësi, duke përfshirë krijimin e një lidhjeje të sigurt, nisjen e një terminali të linjës komanduese në kompjuterin me të cilin po lidheni nga distanca, ekzekutimin e aplikacioneve GUI, transferimin e skedarëve dhe vendosjen e rrjeteve private.

Ka shumë shërbime përgjegjëse për menaxhimin e protokollit. Në sistemin operativ Ubuntu, më i famshmi është Open SSH. Ky është një produkt plotësisht falas me licencë e hapur Dhe komplet i plotë funksionet më të nevojshme. Klienti për menaxhimin e lidhjes SSH është tashmë i përfshirë në shpërndarjen e Ubuntu, do t'ju duhet vetëm të instaloni dhe konfiguroni komponentët e serverit. Kontrolli kryhet përmes komandave në terminal.

Instalimi i SSH në Ubuntu

Meqenëse protokolli i klientit SSH për menaxhimin e tij është një standard i pranuar përgjithësisht, mund ta instaloni duke përdorur një komandë të shkurtër në Terminali Ubuntu. për ta bërë këtë, nisni vetë terminalin duke shtypur shkurtoren e tastierës Ctrl + Alt + T, më pas përdorni komandën sudo apt-get install ssh. Pasi të jetë gati për t'u shkarkuar, programi do t'ju pyesë nëse dëshironi të vazhdoni. kaloni tastierën në rusisht dhe shtypni D. Në kompjuterin tuaj me Instalimi i Ubuntu ssh do të përfundojë brenda disa sekondash. Nëse dëshironi të aktivizoni nisje automatike Kur ndizni sistemin, përdorni komandën sudo systemctl enable sshd. Prandaj, nëse më vonë dëshironi të hiqni shërbimin nga fillimi automatik, do t'ju duhet komanda sudo systemctl disable sshd.

Tani mund të kontrolloni se si funksionon gjithçka. E tëra çfarë ju duhet të bëni është të përpiqeni të lidheni me serverin lokal SSH: ssh localhost. Shërbimi do të kërkojë patjetër fjalëkalimin e superpërdoruesit, dhe gjithashtu do të ofrojë shtimin e adresës së futur në listën e atyre të lejuara. Nëse gjithçka funksionon siç pritej për ju, do të shihni një mesazh të vogël që përfundon me një njoftim për datën e lidhjes së fundit me adresën.

Tani mund të lidheni me çdo kompjuter në rrjet nëse e dini adresën e tij IP dhe emrin e përdoruesit. Për ta bërë këtë, në terminal duhet të futni një komandë në formatin e mëposhtëm:

ssh emri i përdoruesit@ip_adresa

Për shembull, nëse dëshironi të lidheni me kompjuterin e Vasya Pupkin me adresën 132.14.25.10, atëherë komanda do të duket si kjo:

ssh [email i mbrojtur]

Konfigurimi i SSH në Ubuntu

Për korrekte dhe punë e sigurt me një server SSH, ai duhet të konfigurohet në një mënyrë të caktuar. Për ta bërë këtë, duhet të redaktoni skedarin e parametrave sshd_config që ndodhet në drejtorinë /etc/ssh. Vlen të përmendet se nuk mund të ndryshohet thjesht duke e hapur atë përmes menaxherit të skedarëve në mënyrë të rregullt redaktori i tekstit. Sistemi do t'ju njoftojë për të drejta të pamjaftueshme dhe thjesht nuk do të jeni në gjendje t'i ruani ndryshimet. Prandaj, do t'ju duhet përsëri një terminal dhe njohuri për disa komanda, të cilat tani do t'i mbulojmë. Le të shohim hapat e nevojshëm për të vendosur një server ssh në sistemin operativ Ubuntu.


Çfarë mund të ndryshoni në cilësimet e SSH?


Komandat minimale të kërkuara


Kjo do të jetë një seri artikujsh mbi instalimin dhe konfigurimin server i thjeshtë për një ekip të zhvillimit të uebit. Serveri do të ketë Git, FTP, SSH, Apache 2, PHP 5.4, MySQL, cron, subdomain, memcached, Composer. Artikujt do të jenë të zbatueshëm për Ubuntu 14.04. Besoj se serveri do të përdoret për qëllime korporative, dhe jo për projekte përfundimtare. Edhe pse, nëse lejohet që një projekt të jetë në një server dev, atëherë pse jo...

Unë do të bëj një rezervim menjëherë. Unë nuk kam përvojë të mjaftueshme në administrimin e serverit dhe nuk e bëj atë në mënyrë profesionale, kështu që nuk mund të garantoj që veprimet e përshkruara më poshtë janë 100% të sakta. Udhëzimet janë një kujtesë për vendosjen e shpejtë të një serveri për t'iu përshtatur nevojave të mia. Nëse shihni një gabim të dukshëm ose "kjo nuk supozohet të bëhet në prodhim" (megjithëse kam përcaktuar që projektet nuk duhet të mbahen në serverin dev), atëherë do të isha mirënjohës nëse përshkruani zgjidhje e saktë në komente.

Supozohet se Ubuntu 14.04 është instaluar tashmë në server (në një VPS/VDS, për shembull) dhe ju keni akses në tastierën rrënjësore.

  1. Përdoruesit dhe SSH

Le të fillojmë.

Përdoruesit e serverit

Së pari, një listë e shkurtër e komandave për të punuar me përdoruesit.

Shto një përdorues të ri

shtues Emri i përdoruesit

Fshi përdoruesin

userdel -r Emri i përdoruesit

Ndrysho fjalekalimin

passwd Emri i përdoruesit

Identifikohu si përdorues

su Emri i përdoruesit

Kthehu në rrënjë:

Ndrysho direktorinë e shtëpisë

usermod -d direktoria e kërkuar Emri i përdoruesit

Cakto zotëruesin dhe grupin e një drejtorie (dhe të gjithë përmbajtjen e saj)

chown -R Emri i përdoruesit:drejtoria e emrit të grupit

Le të vendosim për përdoruesit

  • mygit - për të demonstruar se si të punohet me magazinat Git;
  • myftp - për të demonstruar se si të punohet me FTP;
  • myssh - për të demonstruar se si të punohet me SSH.

Nëse është e qartë me myssh, atëherë, në shikim të parë, qasja SSH në mygit dhe veçanërisht myftp nuk është e nevojshme. Refuzo qasjen SSH përdorues të veçantë(ose lejoni vetëm disa) ju mund të hyni /etc/ssh/sshd_config por mygit përdor SSH për autorizimin e Git. Prandaj, më pas do të shqyrtojmë një metodë tjetër që nuk kërkon një rindezje SSH dhe, nga njëra anë, nuk lejon hyrjen në tastierë përmes SSH mygit, por nga ana tjetër, ju lejon të përdorni SSH për të punuar me Git.

SSH

Përgatitja

Instalimi i klientit dhe serverit OpenSSH kryhet me komandën:

Apt-get install ssh

Konfigurimi

Duke përdorur redaktorin mcedit (ose nano, në rastin e mcedit ju duhet të instaloni mc fillimisht) hapni skedarin /etc/ssh/sshd_config:

Mcedit /etc/ssh/sshd_config

Verifikoni që parametri i mëposhtëm ka vlerën e specifikuar:

PermitEmptyPasswords nr

Këtu mund të specifikoni një port të ndryshëm për SSH, por në këtë rast, kur lidheni më pas nga klientët, komanda e lidhjes do të duhet të duket si kjo:

Ssh -p PORT login@server

Rifillo, fillo përsëri Serveri SSH mund të përdorni komandën:

Rinisja e shërbimit ssh

Klientët

Përdoruesit që do të lidhen me serverin nëpërmjet SSH ose Git (nëpërmjet SSH) duhet të kenë të instaluar një klient SSH dhe të gjenerojnë çelësa. Mund të kontrolloni nëse çelësi është krijuar nga prania e skedarit ~/.ssh/id_rsa.pub. Nëse mungon, duhet ta gjeneroni, për shembull, duke përdorur komandën e mëposhtme:

Ssh-keygen -t rsa -C "email@server"

Ju nuk keni nevojë të vendosni një fjalëkalim.

Pastaj shtoni çelësin në ssh-agent:

Ssh-add ~/.ssh/id_rsa

Autorizim me çelës

Për të shmangur futjen e një fjalëkalimi sa herë që lidheni me SSH dhe Git (ai do të funksionojë gjithashtu përmes SSH), duhet të krijoni një skedar ~/.ssh/authorized_keys ata përdorues në server, me të cilat do të bëhen lidhjet.

shënim: për të krijuar direktoriumin .ssh (nëse nuk ka) dhe skedarin autorized_keys, duhet të jeni të autorizuar nën të njëjtin përdorues në drejtorinë kryesore të të cilit kryhen veprimet. Ose më pas vendosni të drejtat, grupin dhe pronarin e duhur. Në të ardhmen, kur ndryshoni skedarin autorized_keys, duhet ta keni parasysh edhe këtë.

Në këtë skedar, çdo rresht duhet të përmbajë përmbajtjen e çelësit publik ( ~/.ssh/id_rsa.pub) klientët e këtij përdoruesi. Duhet të ketë një rresht bosh në fund të skedarit autorized_keys.

Me fjalë të tjera, nëse kemi server_user_1, i cili do të aksesohet përmes ssh nga klientët client_user_1 dhe client_user_2, atëherë në direktorinë kryesore të përdoruesit server_user_1 skedari ~/.ssh/authorized_keys duhet të ketë tre rreshta:

Përmbajtja e përmbajtjes id_rsa.pub klient_user_1 e id_rsa.pub klient_user_2 (varg bosh)

Prezantoni në vëmendjen tuaj kurs i ri nga ekipi Codeby- "Testimi i penetrimit të aplikacioneve në ueb nga e para." Teoria e përgjithshme, përgatitja e mjedisit të punës, fuzzimi pasiv dhe gjurmët e gishtave, fuzzimi aktiv, dobësitë, post-shfrytëzimi, Mjetet, Inxhinieri Sociale dhe shumë më tepër.


Çfarë është SSH dhe pse ju nevojitet?

Secure Shell (SSH) është një protokoll rrjeti që ofron funksione shell në një makinë të largët përmes një kanali të sigurt. SSH vjen me përmirësime të ndryshme sigurie, duke përfshirë vërtetimin e përdoruesit/host, enkriptimin e të dhënave dhe integritetin e të dhënave, duke i bërë të pamundur sulmet e njohura si përgjimi, mashtrimi i DNS/IP, falsifikimi i të dhënave dhe rrëmbimi i lidhjeve. etj. Përdoruesit e Ftp, telnet ose rlogin që përdorin një Protokolli që transferon të dhënat në tekst të qartë rekomandohet shumë për të kaluar në SSH.

OpenSSH është një zbatim me kod të hapur Kodi i burimit Protokolli SSH, i cili ju lejon të kriptoni lidhjen në rrjet duke përdorur një grup programesh. Nëse dëshironi të keni SSH në Linux, mund të instaloni OpenSSH, i cili përbëhet nga një server OpenSSH dhe paketa klientësh.

Paketat e serverit/klientit OpenSSH vijnë me shërbimet e mëposhtme:

  • Serveri OpenSSH: sshd (demon SSH)
  • Klienti OpenSSH: scp (kopje e sigurt në distancë), sftp ( transferim i sigurt skedarë), login/ssh (hyrje e sigurt në distancë), ssh-add (shtesë çelës privat), ssh-agent (agjent i vërtetimit), ssh-keygen (menaxhimi i çelësave të vërtetimit).

Instalimi i serverit dhe klientit OpenSSH në Linux

Nëse dëshironi të instaloni serverin/klientin OpenSSH dhe të konfiguroni serverin OpenSSH që të fillojë automatikisht, ndiqni duke ndjekur udhëzimet, të cilat ndryshojnë në varësi të shpërndarjes.

Debian, Ubuntu ose Linux Mint

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

Në sistemet e bazuara në Debian, pasi të instalohet, OpenSSH do të fillojë automatikisht në boot. Nëse për ndonjë arsye serveri OpenSSH nuk fillon automatikisht gjatë nisjes së sistemit, mund të ekzekutoni komandën e mëposhtme për të shtuar në mënyrë eksplicite ssh në nisje gjatë nisjes së sistemit.

$ sudo update-rc.d parazgjedhjet ssh

Fedora ose CentOS/RHEL 7

$ sudo yum -y instaloni openssh-server openssh-clients $ sudo systemctl filloni shërbimin sshd $ sudo systemctl aktivizoni sshd.service

CentOS/RHEL 6

$ sudo yum -y instaloni openssh-server openssh-klientët $ shërbim sudo sshd fillon $ sudo chkconfig sshd në

Arch Linux

$ sudo pacman -Sy openssh $ sudo systemctl nis shërbimin sshd $ sudo systemctl aktivizo sshd.service

Vendosja e një serveri OpenSSH

Nëse dëshironi të konfiguroni një server OpenSSH, mund ta modifikoni skedar në të gjithë sistemin konfigurimi i vendosur në /etc/ssh/sshd_config.

Ka disa opsione OpenSSH që mund të jenë me interes:

Si parazgjedhje, sshd dëgjon në portin 22 dhe dëgjon për lidhjet hyrëse ssh. Duke ndryshuar portin e paracaktuar për ssh, mund të parandaloni sulme të ndryshme të automatizuara të hakerëve.

Dëgjo Adresa 192.168.1.1

Nëse kompjuteri juaj ka më shumë se një ndërfaqe rrjeti fizik, mund të dëshironi të kontrolloni se cila është e lidhur me sshd, për këtë mund të përdorni opsionin ListenAddress. Ky opsion ndihmon në përmirësimin e sigurisë duke kufizuar SSH-në hyrëse vetëm në një ndërfaqe specifike.

HostKey /etc/ssh/ssh_host_key

Opsioni HostKey përcakton se ku ndodhet çelësi personal i hostit.

PermitRootLogin nr

Opsioni PermitRootLogin – nëse root mund të hyjë në sistem përmes ssh.

AllowUsers alice bob

Duke përdorur opsionin AllowUsers, mund të çaktivizoni në mënyrë selektive shërbimin ssh për përdorues të caktuar Linux. Mund të specifikoni shumë përdorues, të ndarë me hapësira.

Pasi të jetë ndryshuar /etc/ssh/sshd_config, sigurohuni që të rinisni shërbimin ssh.

Për të rifilluar OpenSSH në Debian, Ubuntu ose Linux Mint:

$ sudo /etc/init.d/ssh rinisni

Për të rifilluar OpenSSH në Fedora, CentOS/RHEL 7 ose Arch Linux:

$ sudo systemctl rinisni sshd.service

Për të rifilluar OpenSSH në CentOS/RHEL 6:

$ rinisni shërbimin sudo sshd

Si të lidheni me SSH

Lidhja me SSH nga Linux

Përdoruesit e Linux nuk kanë nevojë të instalojnë programe shtesë.

Lidhja me SSH nga Windows

Për Windows, shumë njerëz rekomandojnë dhe përdorin me sukses PuTTY. Unë nuk kam asgjë kundër këtij programi, por unë vetë preferoj dhe rekomandoj Cygwin.

Cygwin nuk është vetëm një klient SSH. Ky është një kombinim i fuqishëm që mbështet shumë Komandat Linux. Për shembull, Cygwin e bën shumë të lehtë krijimin e certifikatave SSL (ashtu si Linux). Në Windows, për të krijuar certifikata të vetë-nënshkruara, duhet të kërceni me një dajre. Cygwin është shumë i përshtatshëm për të përdorur cURL (nuk ka nevojë të instaloni asgjë veçmas), etj. Ata që nuk kanë linjë komanduese dhe programe Linux në Windows do të gjejnë një prizë në Cygwin.

Instalimi i Cygwin është i lehtë. Shkoni në faqen zyrtare të internetit dhe shkarkoni versionin 32-bit ose 64-bit.

Do të shkarkohet një skedar i vogël - ky është instaluesi. Instalues ​​grafik. Megjithëse përmban një numër të madh opsionesh, ato janë të gjitha mjaft të thjeshta dhe shumë janë të njohura nga instaluesit e tjerë grafikë. Nëse diçka nuk është e qartë, thjesht klikoni "Next". Ndoshta vetëm dritarja e mëposhtme mund të çojë në konfuzion:

Të gjithë elementët e disponueshëm për instalim janë paraqitur këtu. Ne nuk kemi nevojë t'i kuptojmë ato tani. Sepse ato më të njohurat tashmë janë shënuar për instalim. Dhe nëse diçka mungon në të ardhmen, mund ta instaloni lehtësisht atë që ju nevojitet.

Lidhja SSH (e zakonshme për Linux dhe Windows)

Përdoruesit e Linux-it hapin konsolën, përdoruesit e Windows shkruajnë Cygwin.

SSH ka nevojë për informacionin e mëposhtëm për t'u lidhur:

  • IP ose emri i hostit
  • numri i portit
  • Emri i përdoruesit
  • fjalëkalimi i përdoruesit

Dy nga këto parametra SSH mund të hamendësojë: emrin e përdoruesit dhe numrin e portit. Nëse një port nuk është specifikuar, supozohet porta e paracaktuar. Nëse një përdorues nuk është specifikuar, atëherë përdoret i njëjti emër si në sistemin nga i cili është bërë lidhja. Për shembull, adresa e hostit për lidhjen është 192.168.1.36. Nëse telefonoj

Ssh 192.168.1.36

Unë shoh sa vijon

Alex@MiAl-PC ~ $ ssh 192.168.1.36 Autenticiteti i hostit "192.168.1.36 (192.168.1.36)" nuk mund të vendoset. Gjurma e gishtit të kyçit ECDSA është SHA256:sIxZeSuiivoEQSCL5000 jeni i sigurt që dëshironi të vazhdoni lidhjen ( po/jo)?

Meqenëse po lidhem me hostin për herë të parë, është një host i panjohur. Më pyesin nëse dua të vazhdoj. Unë jam duke thirrur po:

Paralajmërim: Shtuar përgjithmonë "192.168.1.36" (ECDSA) në listën e hosteve të njohur. [email i mbrojtur] Fjalëkalimi i "s:

Në rregull, hosti 192.168.1.36 është shtuar në listën e hosteve të njohur. Më kërkohet një fjalëkalim për përdoruesin Alex. Meqenëse nuk ka një përdorues të tillë në server me SSH, por unë klikoj Ctrl+C(për të thyer) dhe futni komandën së bashku me emrin e përdoruesit të sistemit në distancë. Përdoruesi futet përpara adresës së makinës në distancë dhe ndahet nga adresa me simbolin @. Simboli @ në anglisht lexohet si në dhe mund të përkthehet si "në". Ato. rekord [email i mbrojtur] mund të interpretohet si "mial user on machine 192.168.1.36".

Ssh [email i mbrojtur]

Ftesa Alex@MiAl-PC u zëvendësua nga ftesa mial@mint. Kjo do të thotë që ne jemi tashmë në makinën në distancë, pra ne kemi bërë tashmë një lidhje. Nëse duhet të specifikoni një port (nëse ndryshon nga ai standard), atëherë porti duhet të specifikohet pas ndërprerësit -p. Për shembull si kjo:

Ssh [email i mbrojtur]-fq 10456

Pas lidhjes, ne jemi të përshëndetur me diçka të tillë:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 Programet e përfshira me sistemin Debian GNU/Linux janë softuer falas; kushtet e sakta të shpërndarjes për çdo program përshkruhen në skedarët individualë në /usr/share/doc/*/copyright. Debian GNU/Linux vjen me ASNJË GARANCI, në masën e lejuar nga ligji në fuqi. Hyrja e fundit: Mar 16 Qershor 15:32:25 2015 nga 192.168.1.35

Nga kjo rrjedh se makina në distancë është Linux Mint, me kernel 3.16, version 64-bit. Gjithashtu informacion i rëndësishëm është koha e hyrjes së fundit dhe adresa IP nga e cila filloi lidhja. Nëse koha dhe IP nuk janë të njohura për ju dhe ju jeni përdoruesi i vetëm, atëherë sistemi juaj është i rrezikuar dhe ju duhet të ndërmerrni veprimet e duhura.

Le të shkruajmë disa komanda për t'u siguruar se ku jemi dhe kush jemi: pwd, unname -a etj.:

Për të përfunduar seancën (dalni), thirrni

Ose klikoni Ctrl+D.

Hyni në SSH pa futur një fjalëkalim

Së pari, është thjesht më i përshtatshëm. Së dyti, është më e sigurt.

Së pari, ne duhet të krijojmë çelësat rsa. nëse ti Përdorues Linux, atëherë je mirë. Nëse jeni përdorues i Windows, por nuk keni dëgjuar këshillat e mia dhe keni zgjedhur PuTTY, atëherë keni një problem dhe mendoni vetë se si ta zgjidhni atë. Nëse keni Cygwin, atëherë gjithçka është gjithashtu në rregull.

Nëse keni arritur të identifikoheni në sistemin në distancë, dilni. Pas kësaj, thirrni

Ssh-keygen -t rsa

Na kërkohet një emër skedari, nuk kemi nevojë të fusim asgjë, do të përdoret emri i paracaktuar. Kërkon gjithashtu një fjalëkalim. Nuk e fus fjalëkalimin.

Tani në makinën në distancë duhet të krijojmë një direktori .ssh. Ekzekutimi i komandës në një makinë të largët do të diskutohet më poshtë. Tani për tani, thjesht kopjoni komandën, duke mos harruar të ndryshoni adresën IP dhe emrin e përdoruesit në tuajin:

Ssh [email i mbrojtur] mkdir.ssh

Tani duhet të kopjojmë përmbajtjen e skedarit id_rsa.pub në makinën në distancë. Kjo është shumë e lehtë për t'u bërë (mos harroni të ndryshoni të dhënat në tuajat):

Cat .ssh/id_rsa.pub | ssh [email i mbrojtur]"cat >> .ssh/authorized_keys"

Tani ne thjesht hyjmë dhe ata nuk na kërkojnë më asnjë fjalëkalim. Dhe kështu do të jetë gjithmonë tani.

Ekzekutimi i komandave në një server të largët pa krijuar një sesion shell

Përveç hapjes së një sesioni shell në një sistem në distancë, ssh gjithashtu ju lejon të ekzekutoni komanda individuale në sistemin në distancë. Për shembull, për të ekzekutuar komandën e pemës në një host të largët të quajtur remote-sys dhe për të shfaqur rezultatet në sistemin lokal, do të bëni këtë:

ssh remote-sys pemë

Shembulli im i vërtetë:

Ssh [email i mbrojtur] pemë

Duke përdorur këtë teknikë mund të bëni gjëra interesante, si ekzekutimi i një komande ls në një sistem të largët dhe ridrejtimi i daljes në një skedar në sistemin lokal:

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

Shembull i vërtetë:

Ssh [email i mbrojtur]"ls *" > dirlist.txt mace dirlist.txt

Vini re thonjëzat e vetme në komandën e mësipërme. Kjo është për shkak se ne nuk duam që zgjerimi i rrugës të bëhet në makinën lokale; sepse ne kemi nevojë për këtë ekzekutim në një sistem të largët. Gjithashtu, nëse duam të ridrejtojmë daljen standarde në një skedar në makinën në distancë, mund të vendosim deklaratën e ridrejtimit dhe emrin e skedarit brenda thonjëzave të vetme:

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

Transferimi i prodhimit standard nga makina lokale në makinë në distancë nëpërmjet ssh

Një opsion po aq interesant për ekzekutimin e komandave jepet pak më lart:

Cat .ssh/id_rsa.pub | ssh [email i mbrojtur]"cat >> .ssh/authorized_keys"

  • Komanda cat lexon rresht pas rreshti dhe shfaq përmbajtjen e skedarit .ssh/id_rsa.pub që ndodhet në makinën lokale.
  • | (tub) kalon atë që do të shfaqej në daljen standarde në një komandë tjetër.
  • Në vend të një komande që do të përpunonte vargjet e kaluara tek ai, bëhet një lidhje me sistemin në distancë (ssh [email i mbrojtur]).
  • Aktiv sistem në distancë mbërrijnë linjat për të cilat ofrohet komanda cat >> .ssh/authorized_keys. Ato. përmbajtja e daljes standarde shkruhet rresht pas rreshti në skedarin .ssh/authorized_keys që ndodhet në makinën në distancë.

Hapja e një programi grafik të vendosur në një kompjuter të largët

Truku tjetër kërkon dy kompjuterë Linux. Fatkeqësisht, edhe Cygwin nuk mund ta përballojë këtë mashtrim. Për më tepër, të dy sistemet Linux duhet të kenë një ndërfaqe grafike të përdoruesit.

Tunelizim me SSH

Ndër të tjera që ndodhin kur vendoset një lidhje me një host të largët nëpërmjet SSH është krijimi i një tuneli të koduar që formohet midis sistemeve lokale dhe të largëta. Në mënyrë tipike, ky tunel përdoret për të siguruar që komandat e shtypura në makinën lokale të transmetohen në mënyrë të sigurt në një makinë në distancë dhe rezultati gjithashtu dërgohet në mënyrë të sigurt.

Përveç kësaj funksioni bazë, protokolli SSH lejon që shumica e llojeve të trafikut të dërgohen përmes një tuneli të koduar, duke krijuar një lloj VPN (rrjeti privat virtual) midis sistemeve lokale dhe të largëta.

Ndoshta më e përdorura nga këto veçori është aftësia për të transmetuar trafikun e sistemeve X Window. Në një sistem që ekzekuton serverin X (këto janë makina që kanë një grafik ndërfaqja e përdoruesit) është e mundur të ekzekutohet programi i klientit X ( aplikimi grafik) në një sistem të largët dhe shikoni rezultatet e punës së tij në sistemin lokal. Është e lehtë për të bërë. Për shembull, unë dua të lidhem me hostin e largët remote-sys dhe në të dua të ekzekutoj programin xload. Në të njëjtën kohë, unë do të mund të shoh daljen grafike të këtij programi në kompjuterin lokal. Kjo bëhet si kjo:

ssh -X remote-sys

Shembull i vërtetë:

Ssh -X [email i mbrojtur] gedit

Ato. SSH fillon me çelësin -X. Dhe pastaj programi thjesht fillon. Shikoni pamjen e ekranit.

Unë jam në Kali Linux. Unë hyj me sukses në një kompjuter të largët nëpërmjet SSH. Pas kësaj kam drejtuar programin gedit. Ky program mund të mos jetë as në Kali Linux, por është padyshim në Linux Mint, me të cilin u lidha. Unë mund të shoh rezultatin e këtij programi në ekran sikur programi të funksiononte lokalisht. Por përsëri, dua që ju ta kuptoni këtë, programi i ekzekutimit Nuk ka gedit në kompjuterin lokal. Nëse dua të ruaj rezultatin e gedit (ose ndonjë program tjetër të hapur në këtë mënyrë), rezulton se ai funksionon në mjedisin e kompjuterit në distancë, sheh sistemin e tij të skedarëve, etj. Kjo është e përshtatshme kur dëshironi të konfiguroni kompjuter në distancë duke përdorur një ndërfaqe grafike.

Do të mësoni se si të transferoni një imazh nga i gjithë desktopi në të njëjtin artikull më vonë, në seksionin "Si të konfiguroni VNC përmes SSH".

Në disa sisteme, ky mashtrim kërkon përdorimin e opsionit -Y në vend të opsionit -X.

Kopjimi nga/në një kompjuter të largët (scp dhe sftp)

scp

Paketa OpenSSH përfshin gjithashtu dy programe që përdorin një tunel të koduar SSH për të kopjuar skedarët në rrjet. Programi i parë - scpkopjimi i sigurt") – përdoret më shpesh, siç është programi i ngjashëm cp për kopjimin e skedarëve. Dallimi më i dukshëm është se burimi i skedarit mund të jetë hosti i largët i ndjekur nga një dy pika dhe vendndodhja e skedarit. Për shembull, nëse duam të kopjojmë një dokument të quajtur document.txt nga tonë drejtoria e shtëpisë te sistemi i largët remote-sys në drejtorinë aktuale të punës në sistemin tonë lokal mund ta bëjmë këtë:

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

Shembull i vërtetë:

# fshini skedarin në makinën lokale nëse ekziston rm dirlist.txt # krijoni një skedar në makinën në distancë ssh [email i mbrojtur]"ls * > dirlist.txt" # kontrolloni për praninë e tij ssh [email i mbrojtur]"ls -l" # kopjojeni atë në makinën lokale scp [email i mbrojtur]:dirlist.txt. # kontrolloni përmbajtjen e tij cat dirlist.txt

Për të kopjuar një skedar nga makinë lokale në distancë:

scp local_file remote-sys:.

Shembull i vërtetë

# krijo një skedar të ri prek nfile.txt # dërgo skedarin scp nfile.txt [email i mbrojtur]:. nfile.txt 100% 0 0.0KB/s 00:00 # kontrolloni praninë e skedarit në makinën në distancë ssh [email i mbrojtur]"ls -l"

Në komandën e dërgimit:

  • nfile.txt - emri i skedarit,
  • [email i mbrojtur]— emri i përdoruesit dhe hosti në distancë,
  • . (pikë) do të thotë që skedari duhet të kopjohet në drejtorinë aktuale të punës në serverin e largët, por emri i skedarit do të mbetet i njëjtë, d.m.th. nfile.txt

Memo:

Për të kopjuar një skedar nga B në A kur jeni regjistruar në B:

scp / path/to/file username@a:/path/to/destination

Kopjimi i një skedari nga B në A kur hyni në A:

scp username@b:/rruga/to/file /rruga/to/destinacioni

sftp

Programi i dytë për kopjimin e skedarëve nëpërmjet SSH është sftp. Siç sugjeron emri i tij, është një zëvendësim i sigurt i programit ftp. sftp funksionon si origjinali program ftp. Megjithatë, në vend të dërgimit në tekst të qartë ai përdor një tunel të koduar SSH. Një avantazh i rëndësishëm sftp para ftp është se nuk kërkon ekzekutim Server FTP në një host të largët. Kërkon vetëm një server SSH. Kjo do të thotë që çdo makinë në distancë që është e lidhur nëpërmjet një klienti SSH mund të përdoret gjithashtu si një server i ngjashëm me FTP. Këtu është një sesion shembull:

Alex@MiAl-PC ~ $ sftp [email i mbrojtur] Lidhur me 192.168.1.36. sftp> ls dirlist.txt newfile.txt nfile.txt temp Videot Dokumentet Shkarkimet Imazhet Muzika Modelet e Desktopit Publik sftp> lls dirlist.txt nfile.txt sftp> ls temp/TakeMeHome sftp> cd temptch / TakeMehoome mial/temp/TakeMeHome në TakeMeHome sftp> mirupafshim

Protokolli SFTP mbështetet nga shumë grafikë menaxherët e skedarëve, të cilat mund të gjenden në shpërndarjet Linux. Duke përdorur të dy Nautilus (GNOME) dhe Konqueror (KDE), ne mund të futim URI (lidhje) duke filluar me sftp:// në shiritin e kërcimit dhe të punojmë me skedarë të vendosur në një sistem të largët që drejton një server SSH.

Garantuesi është një ndërmjetës i besueshëm ndërmjet pjesëmarrësve gjatë transaksionit.


Duke përdorur një protokoll të sigurt SSH, administratorët lidhen me serverët e tyre për punë të sigurt. Le të hedhim një vështrim më të afërt në veçoritë e këtij protokolli:

Çfarë është protokolli SSH

Protokolli SSH (nga anglishtja. Shell i sigurt) është një protokoll rrjeti kriptografik i krijuar për akses në distancë në sistemin operativ dhe telekomandë të sigurt brenda rrjet i pasigurt(për shembull, nëpërmjet internetit).

SSH siguron një kanal të sigurt komunikimi midis klientit dhe serverit, përmes të cilit mund të transferoni të dhëna (mail, video, skedarë), të punoni në linjën e komandës dhe të nisni programet nga distanca, përfshirë ato grafike. Serveri SSH duhet të instalohet në sistemin operativ në distancë. Klienti SSH duhet të funksionojë në makinën nga e cila do të bëhet lidhja në distancë.

Karakteristikat kryesore të disponueshme kur përdorni protokollin SSH:

  • Transferoni çdo të dhënë nëpërmjet një lidhjeje të sigurt SSH, duke përfshirë kompresimin e të dhënave për enkriptimin e mëvonshëm.
  • X11 Forwarding është një mekanizëm që ju lejon të ekzekutoni programet e serverit UNIX/Linux në formë guaskë grafike, si në Windows (përdorni X Window System).
  • Përcjellja e portit është transferimi i trafikut të koduar midis porteve të makinave të ndryshme.

Siguria e lidhjes SSH sigurohet nga:

  • kriptimi i të dhënave duke përdorur një nga algoritmet ekzistuese
  • vërtetimi i serverit dhe klientit duke përdorur një nga disa metoda të disponueshme
  • disponueshmëria funksione shtesë protokoll që synon parandalimin e sulmeve të ndryshme të hakerëve

Autentifikimi i serverit siguron mbrojtje kundër:

  • hakimi duke zëvendësuar adresat IP (IP-spoofing), kur një host në distancë dërgon pako në emër të një hosti tjetër të largët
  • zëvendësimi i regjistrimeve DNS (DNS-spoofing), kur një rekord në serverin DNS zëvendësohet, duke rezultuar në krijimin e një lidhjeje me hostin e specifikuar në regjistrimin e falsifikuar, në vend të atij të kërkuar
  • përgjimi i fjalëkalimeve të hapura dhe të dhënave të tjera të transmetuara në formë e hapur nëpërmjet lidhjes së vendosur

Sot, ekzistojnë dy versione të protokollit SSH (SSH-1 dhe SSH-2), dhe versioni i dytë është përmirësuar dhe zgjeruar në krahasim me të parin. Për shembull, versioni i dytë është rezistent ndaj sulmeve MITM (man-in-the-middle, man-in-the-middle). Ka edhe dy botime të këtij protokolli: version i hapur (falas) dhe komercial (me pagesë). Versioni falas - OpenSSH - është i integruar në të gjitha sistemet operative të ngjashme me UNIX si shërbimet standarde Klienti SSH dhe serveri SSH.

Një zbatim komercial i protokollit SSH - SSH Communications Security - u zhvillua nga organizata me të njëjtin emër. Ka dallime të vogla nga version falas, të tilla si disponueshmëria komerciale mbeshtetje teknike, disponueshmëria e mjeteve të menaxhimit të uebit, etj. Grupi bazë i komandave dhe aftësive është pothuajse i njëjtë për të dy produktet.

Klientë dhe predha të ndryshme SSH janë lëshuar për Windows OS, më të zakonshmet janë PuTTY dhe WinSCP falas. Sistemet e tjera operative gjithashtu kanë klientët e tyre SSH.

Çfarë është protokolli SFTP

Protokolli SFTP (nga anglishtja. Skedari SSH Protokolli i Transferimit ) është një protokoll rrjeti i nivelit të aplikacionit i krijuar për transferimin e skedarëve dhe veprimeve të tjera me to përmes një ekzistuesi lidhje e besueshme. Protokolli u zhvillua si një zgjatim i SSH-2, i destinuar për operacione me skedarë mbi një kanal të sigurt, por mund të punojë edhe me protokolle të tjera që ofrojnë lidhje e sigurt server me klient. Me fjalë të tjera, për funksionim i besueshëm Nëpërmjet protokollit SFTP, duhet të keni një lidhje të sigurt të krijuar (për shembull, SSH), e cila vërteton klientin dhe serverin dhe përcakton faktin e besueshmërisë së tyre, pasi vetë protokolli SFTP nuk vërteton dhe nuk ofron siguri.

SFTP ka një sërë avantazhesh ndaj paraardhësve të tij - FTP dhe SCP - si ndërprerja e transferimeve të skedarëve, fshirja, rifillimi i transfertave, shoqërimi i skedarëve të transferuar me atributet bazë si vula e datës/kohës, si dhe pavarësia më e lartë e platformës.

Protokolli SFTP zbatohet përmes serverit SFTP dhe klientit SFTP, të cilët janë nënsisteme të OpenSSH.

Për çfarë përdoren protokollet SSH dhe SFTP?

Më shpesh, protokollet SSH dhe SFTP përdoren për punë në distancë me sistemin operativ ose transferim sasi e madhe dosjet.

Për shembull, një klient merr me qira një server ose një pjesë të hapësirës së serverit. Ekziston nevoja për të transferuar të dhënat ekzistuese të klientit atje, për shembull, një faqe interneti ose skedarë poste. Ofruesi duhet të sigurojë besueshmërinë dhe shpejtësinë e shkëmbimit të të dhënave me serverin e tij, veçanërisht nëse ne po flasim për për vëllimet e mëdha të informacionit dhe konfidencialitetin e lartë të tij. Në këtë rast, në makinën në distancë (në këtë rast - server virtual) është instaluar një server SSH (me protokoll të integruar SFTP), dhe aktivizohet kompjuter klient- Klient SSH. Krijohet një tunel SSH dhe të dhënat shkëmbehen ndërmjet klientit dhe server në distancë kryhet mbi një lidhje të besueshme me të gjitha avantazhet e protokollit të përshkruar më sipër.

SSH mund të përdoret gjithashtu për punë në distancë mbi një lidhje të sigurt me shërbime të ndryshme ofruesish, si p.sh software, sistemet operative etj.

Si funksionon SSH

Nga Protokolli SSH ekzekutimi i një grupi programesh që përdoren për të ekzekutuar veprime të ndryshme në një sistem operativ në distancë. Për shembull, programi sshd ofron funksionalitetin e serverit SSH dhe duhet të funksionojë në serverin SSH. program ssh funksionon në një klient SSH dhe ju lejon të krijoni një lidhje me një host në distancë, të regjistroheni në të dhe të punoni me një makinë në distancë nëpërmjet një lidhjeje SSH.

Për të ekzekutuar disa programe të protokollit SSH, ekzistojnë ekipe speciale me një set opsione të ndryshme. Këto komanda mund të ndryshojnë në varësi të sistemit operativ të klientit dhe guaskës së klientit SSH që po përdorni. Komandat ekzekutohen ose nga linja e komandës, në rastin e sistemeve të ngjashme me UNIX, ose përmes GUI në predhat e duhura SSH.

Si të lidheni përmes SSH

Nëse Windows është i instaluar në kompjuterin tuaj dhe në makinën në distancë Sistemi i ngjashëm me UNIX(p.sh. Linux), atëherë mund të përdorni PuTTY për të krijuar një lidhje SSH. Kjo program falas për Windows përbëhet nga një skedar i vetëm i ekzekutueshëm dhe nuk kërkon instalim.

Për të krijuar një lidhje duke përdorur PuTTY, duhet të bëni sa më poshtë:

Hapni PuTTY (putty.exe).


Asnjë si parazgjedhje cilësimet shtesë nuk ka nevojë ta bëni këtë, mund të siguroheni që porta dhe lloji i 22-të janë specifikuar lidhje lloji - SSH. Në fushën Emri i hostit (ose adresa IP) duhet të futni emrin e kompjuterit në distancë ose adresën e tij IP dhe klikoni butonin Hap.


Mund të shfaqet një paralajmërim sigurie PuTTY, por nëse jeni të sigurt se hosti është i besueshëm, duhet të klikoni Po dhe të vazhdoni lidhjen.


Në vijën e komandës që shfaqet, duhet të futni emrin e përdoruesit nën të cilin do të identifikoheni në kompjuterin e largët.


rreshti tjetër ju duhet të vendosni një fjalëkalim për përdoruesi i dhënë. Kur futni fjalëkalimin tuaj, asnjë karakter nuk shfaqet në vijën e komandës, kështu që thjesht shkruani fjalëkalimin dhe shtypni Enter. Nëse futet emër i gabuar përdoruesi dhe fjalëkalimi, do të shfaqet gabimi "Qasja u refuzua"; nëse lidhja është e suksesshme, linja e komandës kompjuter në distancë.


SSH (Secure Shell) është një protokoll rrjeti i krijuar për menaxhimin e serverit në distancë dhe transferimin e të dhënave përmes lidhjeve të koduara TCP. Shumica e shërbimeve të pritjes, madje edhe ato virtuale, ofrojnë sot akses si përmes FTP ashtu edhe SSH. Sipas mendimit tim, kjo është e mrekullueshme, SSH është shumë më i përshtatshëm dhe më i sigurt për t'u përdorur.

Konfigurimi i SSH

Konfigurimi do të bëhet për një server të dedikuar, VDS, VPS në Debian, Ubuntu. Skedari i konfigurimit ndodhet këtu: /etc/ssh/sshd_config.
Nëse keni një pritje të rregullt, gjithçka duhet të konfigurohet siç duhet, shkoni te seksioni.

Si parazgjedhje, daemon SSHD (në të cilin po bëjmë ndryshime) nuk ka nevojë për asnjë cilësim dhe funksionon mirë. Ne do të bëjmë vetëm disa ndryshime të vogla për të kufizuar aksesin e personave të padëshiruar në server.

Si rezultat i ndryshimeve të gabuara në skedari i konfigurimit Ju mund të humbni aksesin në server nëpërmjet ssh, prandaj sigurohuni që të keni opsione alternative për t'u aksesuar, për shembull duke përdorur panelin e kontrollit ISPManager.

Si të kufizoni aksesin SSH

Të gjitha ndryshimet bëhen në /etc/ssh/sshd_config
Që ndryshimet të hyjnë në fuqi, duhet

Ndrysho portin

Porta 9724

Tani, kur autorizoni, duhet të specifikoni 9724 në vend të portit standard 22.
Metoda është shumë e thjeshtë dhe efektive kundër shumicës së robotëve të thjeshtë të hakerëve që trokasin në portet standarde. Gjëja kryesore këtu nuk është të krijoni një konflikt me shërbimet e tjera dhe të zgjidhni një numër që është padyshim i papërdorur.

Çaktivizoni komunikimin duke përdorur protokollin e vjetër

Këtu përcaktojmë se komunikimi është i mundur vetëm duke përdorur protokollin v2

Nëse nuk jeni të identifikuar rrënjë, para të gjithëve komandat e konsolës ju duhet të shtoni sudo - qëndron për Zëvendëso Përdoruesin dhe DO- zëvendësoni përdoruesin dhe bëni (nën tij). Për shembull, ju lejon të ekzekutoni komanda si një superpërdorues rrënjë.

Zvogëloni numrin e përpjekjeve për autorizim

MaxAuthTries 2

Numri i përpjekjeve për fjalëkalim. Parazgjedhja është 6. Nëse kërkimi dështon, sesioni i komunikimit përfundon.

Reduktoni kohën e pritjes së autorizimit

LoginGraceTime 30s

Si parazgjedhje, një seancë autorizimi mund të zgjasë 120 sekonda. Pas kësaj kohe përfundon. 2 minuta për autorizim është e tepërt; gjatë gjithë kësaj kohe serveri e mban lidhjen të hapur, gjë që është shumë e paarsyeshme. Gjysmë minutë është e mjaftueshme.

Mbyll qasjen në IP

Nëse keni nevojë vetëm për akses, mënyra më e thjeshtë dhe më e besueshme është të bllokoni aksesin nga kudo, përveç IP-së tuaj ose, nëse është dinamike, atëherë diapazoni i IP-së.

  1. Hapni /etc/hosts.allow dhe shtoni SSHD atje: 192.168.1.1

    ku 192.168.1.1 është IP-ja juaj. Nëse keni një IP dinamike, përcaktoni një IP me një maskë nënrrjeti dhe shkruani nënrrjetin tuaj në vend të IP-së, për shembull:

    SSHD: 192.168.0.0/16

  2. Hapni /etc/hosts.deny dhe shtoni atje: SSHD: ALL

Një mënyrë tjetër për të kufizuar aksesin përmes IP

Ju mund të përdorni udhëzimin e mëposhtëm:

AllowUsers = *@1.2.3.4

Këtu ne lejojmë aksesin vetëm për IP 1.2.3.4

Autorizimi SSH nga çelësat

Do të jetë shumë më e sigurt, më e përshtatshme dhe e saktë të vendosni autorizimin ssh pa një fjalëkalim. Për këtë qëllim do të përdoret autorizimi kyç.

Pra, këtu janë udhëzimet:

Lidhja është konfiguruar. Nëse keni bërë diçka të gabuar, gjatë autorizimit do të shihni Gabim serveri refuzoi çelësin tonë, domethënë Serveri nuk e pranoi çelësin tonë. Në këtë rast, kaloni nëpër të gjitha pikat në mënyrë sekuenciale dhe kërkoni gabimin

Artikujt më të mirë mbi këtë temë