Conectați-vă la un server virtual prin SSH și SFTP. Port SSH standard. Taste rapide de bază

În acest articol vom analiza modalități moderne și convenabile de a lucra cu un server prin SSH cu VPS din Infobox și cloud.

Vă vom spune nu numai despre metoda obișnuită de conectare, ci și despre organizarea unei conexiuni stabile pe un Internet instabil (de exemplu, modemuri 3G), precum și utilități suplimentare care vă ajută să lucrați prin SSH.

Dacă sunteți utilizator Windows și trebuie să vă conectați rapid și ușor la un server Linux, accesați secțiunea „Putty sau cum să vă conectați rapid la SSH din Windows”.

Ce trebuie să știți pentru a vă conecta prin SSH

Pentru a vă conecta aveți nevoie de:
  • Adresa IP a serverului
  • log in
  • parola
De unde să obțineți date pentru a vă conecta la serverul VPS NG din Infobox
După comandarea serviciului, conectați-vă la panoul de control https://panel.infobox.ru.
Selectați serviciul „VPS NG” din colțul din dreapta sus al panoului de control din lista derulantă.
Apoi accesați fila „VPS”.

În această secțiune veți vedea adresa IP a serverului si poti instala parola pentru a accesa serverul.


Utilizați numele de utilizator pentru a vă conecta rădăcină, adresa IP de pe această pagină și instalat parola.
Dacă v-ați uitat parola, faceți clic pe elementul „Editați setările de acces” afișat în captura de ecran de mai sus.

De unde să obțineți date pentru a vă conecta la un server VPS din Infobox
Conectați-vă la panoul de control https://panel.infobox.ru.
Selectați serviciul VPS din colțul din dreapta sus al panoului de control din lista verticală (numele serviciului conține numele sistemului de operare comandat și regiunea de locație).

Apoi accesați fila „Gestionare VPS”.


Utilizați numele de utilizator rădăcină, parola și adresa IP a serverului de pe această pagină.

De unde să obțineți date pentru a vă conecta la serverul InfoboxCloud
După crearea serverului, datele de conectare vă vor fi trimise prin e-mail. Este suficient pentru a vă conecta.

Dacă ați pierdut e-mailul cu datele de acces și doriți să accesați serverul
În mod implicit, datele de conectare ale administratorului serverului sunt: ​​root

Conectați-vă la panoul de control la: https://panel.infobox.ru.
Selectați serviciul „Servere cloud” din colțul din dreapta sus al panoului de control din lista derulantă.

Adresa IP dedicată pentru server poate fi vizualizată în fila „Infrastructură în cloud” a panoului de control.

Dacă câmpul " Adresă IP dedicată" gol, înseamnă că la crearea serverului nu ai adăugat cel puțin 1 adresă IP dedicată serverului (și prin urmare nu există acces la server prin Internet, doar din rețeaua locală).

Pentru a adăuga o adresă IP dedicată, faceți clic pe numele serverului.

În grupul Setări de rețea, faceți clic pe Configurare.


Asigurați-vă că lățimea de bandă a rețelei (viteza) este suficientă (sau adăugați mai multe dacă este necesar).
Apoi faceți clic pe „Adăugați o adresă IPv4” și faceți clic pe „Salvați modificările”.


Acum serverul are o adresă IP dedicată.


Pentru a schimba parola de acces la server, faceți clic pe „Modificați”, așa cum se arată în captura de ecran de mai sus. În acest fel, puteți seta o parolă pentru a accesa serverul.
Acum știi adresa IP a serverului, log in ( rădăcină) Și parola.

Configurarea clienților SSH

Pentru Windows
Pentru a vă conecta la server veți avea nevoie de un client SSH. Dacă trebuie să vă conectați rapid, se recomandă Putty. Dacă trebuie să lucrați cu utilitare Unix, cum ar fi scp, rsync și ssh-copy-id, utilizați Cygwin.
Putty sau cum să vă conectați rapid la SSH din Windows
Descărcați programul de instalare Putty pentru Windows din secțiunea Cea mai recentă versiune versiune și instalați Putty cu setările implicite.


Lansați Putty (Start -> Toate aplicațiile -> PuTTY -> PuTTY).

Introduceți adresa IP a serverului. Asigurați-vă că este selectat portul 22 și că tipul de conexiune este SSH și faceți clic pe Deschidere.


Veți fi întrebat dacă aveți încredere în serverul la care vă conectați. Trebuie să răspunzi „Da”.


Se va deschide fereastra de conectare. Utilizați root ca login și parola serverului dvs. ca parolă. Parola poate fi lipită din clipboard cu butonul din dreapta al mouse-ului. Nu este afișat atunci când tastați și lipiți din motive de securitate.


Conexiunea a fost stabilită cu succes.

Mediul Cygwin sau Unix pe computerul dumneavoastră Windows
Când lucrați cu servere Linux, este posibil să aveți nevoie de un mediu similar pe computer. Este foarte convenabil să utilizați un singur set de utilități pe server și pe computerul de lucru, așa că asigurați-vă că încercați Cygwin. Linux pare complicat la prima vedere. Pe măsură ce stăpâniți treptat acest sistem de operare, veți avea nevoie din ce în ce mai mult de Cygwin. Lucrurile bune creează dependență.

Conexiune la internet instabilă la conectarea prin SSH - ce să faceți?

Adesea, atunci când lucrați printr-o rețea instabilă (de exemplu, prin Internet mobil 3G/4G sau diferite puncte de acces WiFi), conexiunea la SSH se pierde. Să ne uităm la ce se poate face la nivel de client pentru a preveni nevoia de reconectare. Aceste instrumente nu sunt potrivite pentru a efectua operațiuni critice pe server (de exemplu, actualizarea sistemului de operare). Pentru a efectua operațiuni critice, trebuie să utilizați suplimentar utilitățile descrise în următoarea secțiune a articolului. Scopul utilităților din această secțiune este de a face lucrul prin SSH mai convenabil pentru utilizator.
AutoSSH
AutoSSH pornește o copie a clientului ssh și monitorizează conexiunea, repornind clientul ssh dacă este necesar.

Autossh folosește ssh pentru a construi o buclă de redirecționare ssh (conexiune de la computerul local la computerul de la distanță și invers) și transmite datele de testare, așteptându-se să revină. De asemenea, acceptă utilizarea unui serviciu de eco la distanță pentru a trimite înapoi datele de testare.

AutoSSH acceptă doar 3 opțiuni:

  • -M<порт>[: port ecou]- folosit pentru a specifica portul de monitorizare sau portul de monitorizare și portul de serviciu ecou. Dacă nu este specificat portul de serviciu ecou, ​​este utilizat următorul port numerotat. De exemplu, dacă este setat indicatorul -M 20000, datele de testare vor fi trimise pe portul 20000 și primite pe portul 20001. Dacă specificați -M 0, monitorizarea conexiunii va fi dezactivată și autossh va reporni ssh numai când ssh iese (puteți utilizați acest lucru cu opțiunile ServerAliveInterval și ServerAliveCountMax în OpenSSH dacă monitorizarea nu poate fi utilizată în situația dvs.);
  • -f- trimite autossh în fundal chiar înainte de a începe ssh (nu veți putea introduce parola în acest mod);
  • -V- afișează versiunea autossh.
Toate celelalte argumente sunt transmise ca parametri ssh.

Pentru a vă asigura că, atunci când conexiunea este restabilită, nu trebuie să introduceți din nou parola, permiteți acestui utilizator să se conecteze la server folosind cheia, așa cum se arată în secțiunea de mai sus.

Instalarea AutoSSH în Cygwin pe Windows
Dacă utilizați Cygwin pe Windows, introduceți:
actualizare apt-cyg
apt-cyg instalează autossh


Acum vă puteți conecta la server:
autossh -M 20000 root@adresa_ip_server


Conexiunea a fost stabilită cu succes.

În general, autossh este un instrument destul de convenabil pentru a lucra pe conexiuni instabile la Internet și pentru a organiza tuneluri SSH pe un server (vom lua în considerare acest scenariu într-un articol separat). Dezavantajul autossh este că acest utilitar nu rezolvă problema dacă există întârzieri semnificative în rețea la introducerea comenzilor (ceea ce se întâmplă pe o rețea 3G). În acest caz, veți aștepta un răspuns de la server pentru fiecare caracter pe care îl introduceți, ceea ce încetinește oarecum lucrurile. Cu toate acestea, în condiții normale de funcționare, autossh este foarte util în menținerea unei conexiuni SSH.

Capacitatea de a introduce comenzi fără a aștepta răspunsul serverului este rezolvată de Mosh, dar compatibilitatea acestui utilitar este încă foarte limitată și fiabilitatea este scăzută, așa că nu este recomandat să-l folosești deocamdată.

Cum să efectuați operațiuni critice și consumatoare de timp pe un server: multiplexare terminale

Dacă actualizați sistemul de operare, instalați un software sau pur și simplu editați un fișier pe server, nu funcționați direct după conectarea prin ssh sau autossh. Dacă conexiunea SSH este închisă, veți pierde sesiunea care a fost începută când vă conectați prin SSH. Pentru a preveni acest lucru și atunci când vă reconectați prin SSH veți ajunge cu siguranță într-o operațiune în curs de desfășurare pe server sau într-o fereastră de editare a fișierelor deschisă din același moment, utilizați multiplexoare terminale de pe server: GNU Screen sau tmux.
Ecran GNU
Programul ecran a fost creat inițial pentru a rula mai multe sesiuni de terminal într-un singur terminal. Cu toate acestea, ecranul are și o altă proprietate utilă: capacitatea de a deconecta sesiunile virtuale de la un terminal fizic și de a se conecta la altul. Acest lucru, în special, vă permite să rulați procese de lungă durată pe mașini la distanță, fără a fi nevoie să fiți autentificat în mod constant la acestea.

1. Conectați-vă la serverul de la distanță prin SSH.
2. Rulați ecranul acolo
3. Veți vedea un mesaj de bun venit, apăsați Enter.
4. Acum puteți face orice ca și cum tocmai ați fi conectat la server prin SSH (de exemplu, rulați orice proces de lungă durată).
5. Puteți detașa o sesiune apăsând CTRL + a apoi d. Puteți chiar să finalizați conexiunea SSH la server.
6. Pentru a reveni la sesiune, reconectați-vă prin SSH (sau autossh va face acest lucru) și introduceți screen -r
Veți reveni la sesiunea de rulare și în ea continuă procesul pe care l-ați început mai devreme. Ne vom uita la multiplexoarele terminale mai detaliat în articolele următoare.

Concluzie

În acest articol, am încercat să acoperim elementele de bază necesare pentru lucrul convenabil prin SSH din diferite sisteme de operare. Desigur, acesta nu este tot ceea ce este posibil, dar este o bază bună pentru a începe. Dacă găsiți o eroare în articol, credeți că trebuie adăugat ceva important sau doar aveți o întrebare -

SSH (Secure Shell) este un protocol de rețea conceput pentru gestionarea serverului de la distanță și transferul de date prin conexiuni criptate TCP. Majoritatea serviciilor de găzduire, chiar și cele virtuale, oferă astăzi acces atât prin FTP, cât și prin SSH. În opinia mea, acest lucru este grozav, SSH este mult mai convenabil și mai sigur de utilizat.

Configurarea SSH

Configurarea va avea loc pentru un server dedicat, VDS, VPS pe Debian, Ubuntu. Fișierul de configurare se află aici: /etc/ssh/sshd_config.
Dacă aveți găzduire obișnuită, totul ar trebui să fie configurat așa cum ar trebui, accesați secțiunea.

În mod implicit, demonul SSHD (care este ceea ce facem modificări) nu are nevoie de setări și funcționează bine. Vom face doar câteva mici modificări pentru a limita accesul persoanelor nedorite la server.

Ca urmare a modificărilor incorecte ale fișierului de configurare, este posibil să pierdeți accesul la server prin ssh, așa că asigurați-vă că aveți opțiuni alternative pentru a-l accesa, de exemplu folosind panoul de control ISPManager.

Cum să restricționați accesul SSH

Toate modificările sunt făcute în /etc/ssh/sshd_config
Pentru ca modificările să intre în vigoare, trebuie

Schimbați portul

Portul 9724

Acum, atunci când autorizați, trebuie să specificați 9724 în loc de portul standard 22.
Metoda este foarte simplă și eficientă împotriva majorității roboților hackeri simpli care bat la porturile standard. Principalul lucru aici este să nu creați un conflict cu alte servicii și să alegeți un număr care este evident neutilizat.

Dezactivați comunicarea folosind vechiul protocol

Aici definim că comunicarea este posibilă numai folosind protocolul v2

Dacă nu sunteți autentificat rădăcină, înainte de toate comenzile consolei, trebuie să adăugați sudo - înseamnă Utilizator înlocuitor și DO- înlocuiți utilizatorul și faceți (sub el). De exemplu, vă permite să executați comenzi ca superutilizator rădăcină.

Reduceți numărul de încercări de autorizare

MaxAuthTries 2

Numărul de încercări de parolă. Implicit este 6. Dacă căutarea eșuează, sesiunea de comunicare este încheiată.

Reduceți timpul de așteptare a autorizației

ConectareGraceTime 30s

În mod implicit, o sesiune de autorizare poate dura 120 de secunde. După acest timp se termină. 2 minute pentru autorizare este exagerat; în tot acest timp serverul menține conexiunea deschisă, ceea ce este foarte irațional. O jumătate de minut este suficient.

Închideți accesul IP

Dacă aveți nevoie doar de acces, cel mai simplu și mai fiabil mod este să blocați accesul de oriunde, cu excepția IP-ului dvs. sau, dacă este dinamic, atunci intervalul IP.

  1. Deschideți /etc/hosts.allow și adăugați SSHD acolo: 192.168.1.1

    unde 192.168.1.1 este IP-ul tău. Dacă aveți un IP dinamic, definiți un IP cu o mască de subrețea și notați subrețeaua în loc de IP, de exemplu:

    SSHD: 192.168.0.0/16

  2. Deschideți /etc/hosts.deny și adăugați acolo: SSHD: ALL

O altă modalitate de a restricționa accesul prin IP

Puteți folosi următoarea directivă:

AllowUsers = *@1.2.3.4

Aici permitem accesul doar pentru IP 1.2.3.4

Autorizare SSH prin chei

Va fi mult mai sigur, mai convenabil și mai corect să configurați autorizarea ssh fără o parolă. În acest scop, se va folosi autorizarea cu cheie.

Deci, iată instrucțiunile:

Conexiunea este configurată. Dacă ați greșit ceva, eroarea Server a refuzat cheia noastră va apărea în timpul autorizării, adică Serverul nu a acceptat cheia noastră. În acest caz, parcurgeți toate punctele succesiv și căutați eroarea

Acest articol este dedicat configurarii accesului de la distanță la Ubuntu Server. Principiul conexiunii este foarte simplu: pe partea clientului folosim un program de acces la distanță (de exemplu, Putty), pe partea serverului instalăm și configurăm pachetul OpenSSH. La conectare, clientul trece printr-o procedură de autorizare cu serverul și se stabilește o conexiune criptată între ei. Principiul de funcționare a protocolului SSH a fost discutat mai detaliat în articolul despre.

Diagrama rețelei este prezentată mai jos. Conexiunea de la distanță la server se va face de pe computerul client.

Am instalat Ubuntu Server pe un hard disk curat. După instalare, trebuie să configurați interfața de rețea a serverului pentru a accesa rețeaua. Și anume, setați adresa IP, masca de rețea, gateway-ul implicit. Dacă interfața este deja configurată, puteți sări peste acest pas. Setările interfeței de rețea sunt specificate în fișier /etc/network/interfaces. Pentru editare vom folosi un editor de text nano.

Intrăm în modul de editare al fișierului interfețe. Suntem interesați de tot ce este mai jos # Interfața de rețea principală. În acest moment, serverul obține o adresă IP prin DHCP, care nu este în întregime corectă. Serverul trebuie să aibă un IP static, astfel încât toate nodurile din rețea să cunoască exact adresa acestuia. Să configuram manual setările de rețea.

Serverul meu se află pe subrețeaua locală 192.168.1.0/24. Serverului i se atribuie IP 192.168.1.2, masca 255.255.255.0, gateway implicit 192.168.1.1, adresa serverului DNS 192.168.0.1

Pentru a salva fișierul, apăsați Ctrl + X -> Y -> Enter. Pentru a aplica setările, trebuie să reporniți procesul de rețea. De asemenea, puteți pur și simplu să reporniți serverul cu comanda sudo reboot.

Verificați (comandă ifconfig -a) - se aplică setările

Totul este gata pentru OpesnSS, care poate fi instalat din terminal folosind comenzile

$ sudo apt-get install openssh-client

$ sudo apt-get install openssh-server

Puteți controla pornirea, oprirea și repornirea serverului SSH folosind comenzile

$sudo serviciu ssh opri | începe | repornire

De fapt, aveți deja acces SSH la server. Dar pentru mai multe reglaje, există un fișier de configurare la /etc/ssh/sshd_config. Accesul la configurații este posibil doar de la root.

Pe partea de client, descărcați orice program pentru a vă conecta prin SSH, recomand Putty. În program, tot ce trebuie să faceți este să introduceți adresa IP a serverului și să vă conectați la acesta. Când vă conectați, introduceți numele de utilizator și parola.

___________________________

1. Informații generale

SSH (Secure SHell) este un protocol de rețea care vă permite să vă conectați la un server de la distanță și să executați comenzi pe acesta, să descărcați fișiere și să creați conexiuni TCP de tunel. O caracteristică cheie este criptarea informațiilor transmise. În mod implicit, găzduirea folosește interpretul de comandă bash.

2. Informații de conectare

Puteți obține informații pentru conectarea la server prin SSH și SFTP în secțiunea " server web" — « Controlul accesului" — « SSH" panou de control (https://www.r01.ru, secțiunea „Pentru clienți”).

  • Adresa serverului (gazdă): ssh.identifier.r01host.ru— indicat în blocul „Nume de domenii”.
  • "Identificator"— un nume unic pentru serviciul de găzduire, indicat în partea de sus a panoului de control, lângă numărul contractului.
  • Nume de utilizator SSH (autentificare): identificator.
  • Pentru a obține parola de utilizator SSH, faceți clic pe butonul "Schimbaţi parola". Noua parolă va fi afișată pe ecran. Pentru a primi parola la adresa de e-mail de contact, bifați caseta „Specificați parola în scrisoare”.

Pentru a vă conecta prin SSH la serverul de găzduire, instalați un client ssh pe computer.

  • Configurarea clientului ssh PuTTY

Pentru a încărca fișiere în găzduirea dvs., utilizați un client SFTP.

  • Acces la serverul virtual prin SFTP

3. Lucrul cu găzduirea folosind Midnight Commander.

Midnight Commander este un manager de fișiere cu două panouri. Are un editor de text încorporat.

Pentru a lansa Midnight Commander, conectați-vă la găzduire prin SSH și introduceți comanda

Taste rapide de bază:

  • F1: Ajutor;
  • F3: Vizualizator de fișiere încorporat;
  • F4: Editor de text încorporat;
  • F5: Copiați fișierul;
  • F6: Mutați (redenumiți) fișierul;
  • F8: Ștergeți fișierul;
  • F9: Afișează meniul derulant;
  • F10: Ieșiți din program;
  • Filă: Deplasați-vă între panouri;
  • Inserare: Marcați un fișier pentru operațiuni cu mai multe fișiere, cum ar fi copierea.

4. Lucrul cu găzduirea din linia de comandă

4.1. Obținerea de informații de ajutor

Pentru a obține informații de bază despre comanda care vă interesează comanda tastați pe linia de comandă:

Pentru a finaliza ajutorul, apăsați „q”.

De obicei, puteți obține ajutor rapid pentru o comandă rulând-o cu opțiunea --help sau -h:

4.2. Navigarea prin sistemul de fișiere

Imprimați directorul curent:

Accesați directorul principal al utilizatorului:

Accesați directorul tmp situat în directorul curent:

Accesați directorul folosind calea completă /home/login/sitename.ru/docs (directorul rădăcină al site-ului sitename.ru):

cd /home/login/sitename.ru/docs

Accesați directorul părinte (cu un nivel mai sus):

Accesați directorul anterior:

4.3. Vizualizați conținutul directorului

Tipăriți conținutul directorului curent (cu excepția fișierelor ascunse):

Tipăriți tot conținutul directorului curent cu informații detaliate:

Tipăriți întregul conținut al directorului tmp cu informații detaliate:

Afișează dimensiunea directorului tmp:

4.4. Crearea și ștergerea fișierelor și directoarelor

Creați un nou director foo în directorul curent:

Creați o structură de directoare foo/bar/baz în directorul curent:

mkdir -p foo/bar/baz

Eliminați directorul foo din directorul curent. Directorul trebuie să fie gol:

Ștergeți directorul foo cu toate fișierele și subdirectoarele:

Creați un fișier gol foo:

Șterge fișierul foo:

4.5. Vizualizarea și editarea conținutului fișierului

Vizualizați conținutul unui fișier text (fișier jurnal de site) (apăsați „q” pentru a ieși):

mai puțin sitename.ru/logs/access_log

Deschideți fișierul foo într-un editor de text:

4.6. Copierea și mutarea fișierelor

Copiați fișierul foo în bara de fișiere:

Copiați conținutul vechiului director în noul director:

Redenumiți fișierul foo în bara de fișiere:

Mutați fișierul foo în directorul bar existent numit baz:

4.7. Modificarea drepturilor de acces

Faceți foo executabil:

Faceți fișierul foo doar în citire:

Schimbarea permisiunilor pentru toate directoarele imbricate sub directorul foo la 755:

find foo -type d -exec chmod 755 () \;

Schimbarea permisiunilor pentru toate fișierele imbricate în directorul foo la 644:

find foo -type f -exec chmod 644 () \;

4.8. Administrarea procesului

Afișați informații despre proces în timp real (apăsați „q” pentru a ieși):

Afișați informații detaliate despre toate procesele care rulează:

Terminați un proces pe baza ID-ului de proces (PID) 1234:

Terminați un proces după numele său:

Reporniți serverul web Apache:

~/etc/rc.d/httpd reporniți

Reporniți serverul web Nginx:

~/etc/rc.d/nginx reporniți

4.9. Lucrul cu arhivele

Creați o arhivă a directorului docs:

tar -czf archive.tar.gz docs

Despachetați arhiva archive.tar.gz:

tar -xzf arhiva.tgz

Despachetați arhiva archive.zip:

dezarhivați archive.zip

Despachetați arhiva archive.rar:

unrar x arhiva.rar

Despachetați arhiva archive.gz:

gunzip archive.gz

4.10. Cauta fișiere

Găsiți printre fișierele site-ului care conțin textul „login.mysql” (adresa serverului pentru accesarea bazei de date):

grep -R "login.mysql" sitename.ru/docs

Găsiți fișierele numite index.php în directorul și subdirectoarele curente.

Vă prezentăm atenției un nou curs din partea echipei The Codeby- „Testarea de penetrare a aplicațiilor web de la zero”. Teorie generală, pregătirea mediului de lucru, fuzzing pasiv și amprentare, fuzzing activ, vulnerabilități, post-exploatare, instrumente, inginerie socială și multe altele.


Ce este SSH și de ce aveți nevoie de el?

Secure Shell (SSH) este un protocol de rețea care oferă funcții shell unei mașini la distanță printr-un canal securizat. SSH vine cu diverse îmbunătățiri de securitate, inclusiv autentificarea utilizator/gazdă, criptarea datelor și integritatea datelor, făcând imposibile atacurile populare precum interceptarea cu urechea, falsificarea DNS/IP, falsificarea datelor și deturnarea conexiunii etc. Utilizatorii Ftp, telnet sau rlogin care folosesc un protocolul care transferă date în text clar este foarte recomandat pentru a trece la SSH.

OpenSSH este o implementare open-source a protocolului SSH care vă permite să vă criptați conexiunea la rețea printr-un set de programe. Dacă doriți să aveți SSH pe Linux, puteți instala OpenSSH, care constă dintr-un server OpenSSH și pachete client.

Pachetele pentru server/client OpenSSH vin cu următoarele utilitare:

  • Server OpenSSH: sshd (daemon SSH)
  • Client OpenSSH: scp (copie securizată de la distanță), sftp (transfer securizat de fișiere), slogin/ssh (autentificare securizată de la distanță), ssh-add (finalizarea cheii private), ssh-agent (agent de autentificare), ssh-keygen (gestionarea cheii de autentificare ).

Instalarea serverului și clientului OpenSSH pe Linux

Dacă doriți să instalați serverul/clientul OpenSSH și să configurați serverul OpenSSH să pornească automat, urmați următoarele instrucțiuni, care variază în funcție de distribuție.

Debian, Ubuntu sau Linux Mint

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

Pe sistemele bazate pe Debian, odată instalat, OpenSSH va porni automat la pornire. Dacă din anumite motive, serverul OpenSSH nu pornește automat la pornirea sistemului, puteți rula următoarea comandă pentru a adăuga în mod explicit ssh la pornirea sistemului.

$ sudo update-rc.d ssh defaults

Fedora sau CentOS/RHEL 7

$ sudo yum -y instalează openssh-server openssh-clients $ sudo systemctl start sshd service $ sudo systemctl enable 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 start sshd service $ sudo systemctl enable sshd.service

Configurarea unui server OpenSSH

Dacă doriți să configurați serverul OpenSSH, puteți edita fișierul de configurare la nivel de sistem situat în /etc/ssh/sshd_config.

Există câteva opțiuni OpenSSH care pot fi de interes:

În mod implicit, sshd ascultă pe portul 22 și ascultă conexiunile ssh de intrare. Schimbând portul implicit pentru ssh, puteți preveni diferite atacuri automate ale hackerilor.

ListenAddress 192.168.1.1

Dacă aparatul dvs. are mai multe interfețe fizice de rețea, poate doriți să verificați care dintre ele este asociată cu sshd, pentru aceasta puteți utiliza opțiunea ListenAddress. Această opțiune ajută la îmbunătățirea securității prin limitarea SSH-ului primit doar la o anumită interfață.

HostKey /etc/ssh/ssh_host_key

Opțiunea HostKey determină unde se află cheia gazdă personală.

PermitRootLogin nr

Opțiunea PermitRootLogin – dacă root se poate conecta în sistem prin ssh.

AllowUsers alice bob

Folosind opțiunea AllowUsers, puteți dezactiva selectiv serviciul ssh pentru anumiți utilizatori Linux. Puteți specifica mai mulți utilizatori, separați prin spații.

După ce /etc/ssh/sshd_config a fost schimbat, asigurați-vă că reporniți serviciul ssh.

Pentru a reporni OpenSSH pe Debian, Ubuntu sau Linux Mint:

$ sudo /etc/init.d/ssh restart

Pentru a reporni OpenSSH pe Fedora, CentOS/RHEL 7 sau Arch Linux:

$ sudo systemctl restart sshd.service

Pentru a reporni OpenSSH pe CentOS/RHEL 6:

$ sudo service sshd restart

Cum să vă conectați la SSH

Conectarea la SSH de pe Linux

Utilizatorii Linux nu trebuie să instaleze programe suplimentare.

Conectarea la SSH din Windows

Pentru Windows, mulți oameni recomandă și folosesc cu succes PuTTY. Nu am nimic împotriva acestui program, dar eu însumi prefer și recomand Cygwin.

Cygwin nu este doar un client SSH. Este un combinator puternic care acceptă multe comenzi Linux. De exemplu, Cygwin facilitează crearea de certificate SSL (la fel ca Linux). În Windows, pentru a crea certificate autosemnate, trebuie să dansezi cu o tamburină. Cygwin este foarte convenabil să folosești cURL (nu este nevoie să instalezi nimic separat), etc. Cei cărora le lipsește linia de comandă și programele Linux pe Windows vor găsi o priză în Cygwin.

Instalarea Cygwin este ușoară. Accesați site-ul oficial și descărcați versiunea pe 32 de biți sau 64 de biți.

Se va descărca un fișier mic - acesta este programul de instalare. Instalator grafic. Deși conține un număr mare de opțiuni, toate sunt destul de simple și multe sunt familiare de la alți instalatori grafici. Dacă ceva nu este clar, faceți clic pe „Următorul”. Poate că doar următoarea fereastră poate duce la confuzie:

Toate elementele disponibile pentru instalare sunt prezentate aici. Nu trebuie să le înțelegem acum. Pentru că cele mai populare sunt deja marcate pentru instalare. Și dacă ceva lipsește în viitor, puteți instala cu ușurință ceea ce aveți nevoie.

Conexiune SSH (comună pentru Linux și Windows)

Utilizatorii Linux deschid consola, utilizatorii Windows introduc Cygwin.

SSH are nevoie de următoarele informații pentru a se conecta:

  • IP sau nume de gazdă
  • numarul portului
  • Nume de utilizator
  • Parolă de utilizator

Doi dintre acești parametri îi poate ghici pe SSH: numele de utilizator și numărul portului. Dacă nu este specificat un port, se presupune portul implicit. Dacă nu este specificat un utilizator, atunci se folosește același nume ca pe sistemul de la care se realizează conexiunea. De exemplu, adresa gazdă pentru conexiune este 192.168.1.36. Dacă apelez

Ssh 192.168.1.36

Văd următoarele

Alex@MiAl-PC ~ $ ssh 192.168.1.36 Autenticitatea gazdei "192.168.1.36 (192.168.1.36)" nu poate fi stabilită. Amprenta cheii ECDSA este SHA256:sIxZeSuiivoEQ00RXAQHxyl888.168.1.36, pe care doriți să continuați să vă conectați. ( da nu)?

Deoarece mă conectez la gazdă pentru prima dată, este o gazdă necunoscută. Mă întreabă dacă vreau să continui. Formez da:

Avertisment: a adăugat permanent „192.168.1.36” (ECDSA) la lista de gazde cunoscute. [email protected] parola lui:

Bine, gazda 192.168.1.36 a fost adăugată la lista de gazde familiare. Mi se cere o parolă pentru utilizatorul Alex. Din moment ce nu există un astfel de utilizator pe server cu SSH, dar fac clic Ctrl+C(pentru a rupe) și introduceți comanda împreună cu numele de utilizator al sistemului de la distanță. Utilizatorul este introdus înainte de adresa mașinii de la distanță și este separat de adresă prin simbolul @. Simbolul @ în engleză se citește ca la și poate fi tradus ca „în”. Acestea. record [email protected] poate fi interpretat ca „utilizator mial pe mașina 192.168.1.36”.

Ssh [email protected]

Invitația Alex@MiAl-PC a fost înlocuită cu invitația mial@mint. Aceasta înseamnă că suntem deja pe mașina de la distanță, adică am făcut deja o conexiune. Dacă trebuie să specificați un port (dacă diferă de cel standard), atunci portul trebuie specificat după comutatorul -p. De exemplu astfel:

Ssh [email protected]-p 10456

După ce ne conectăm, suntem întâmpinați cu ceva de genul acesta:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 Programele incluse în sistemul Debian GNU/Linux sunt software liber; termenii exacti de distribuție pentru fiecare program sunt descriși în fișierele individuale din /usr/share/doc/*/copyright. Debian GNU/Linux vine cu ABSOLUT NU GARANȚIE, în măsura permisă de legea aplicabilă. Ultima conectare: marți 16 iunie 15:32:25 2015 de la 192.168.1.35

Rezultă că mașina de la distanță este Linux Mint, cu kernel 3.16, versiunea pe 64 de biți. De asemenea, informații importante sunt ora ultimei autentificări și adresa IP de la care a provenit conexiunea. Dacă ora și IP-ul nu vă sunt familiare și sunteți singurul utilizator, atunci sistemul dumneavoastră este compromis și trebuie să luați măsurile corespunzătoare.

Să introducem câteva comenzi pentru a ne asigura unde suntem și cine suntem: pwd, uname -a etc.:

Pentru a încheia sesiunea (deconectare), formați

Sau faceți clic Ctrl+D.

Conectați-vă la SSH fără a introduce o parolă

În primul rând, este doar mai convenabil. În al doilea rând, este mai sigur.

În primul rând, trebuie să creăm chei rsa. Dacă ești un utilizator Linux, atunci ești bine. Dacă sunteți utilizator Windows, dar nu mi-ați ascultat sfatul și ați ales PuTTY, atunci aveți o problemă și vă gândiți singur cum să o rezolvați. Dacă aveți Cygwin, atunci totul este, de asemenea, în ordine.

Dacă ați reușit să vă conectați la sistemul de la distanță, deconectați-vă. După aceea, tastați

Ssh-keygen -t rsa

Ni se cere un nume de fișier, nu trebuie să introducem nimic, se va folosi numele implicit. De asemenea, solicită o parolă. Nu introduc parola.

Acum, pe mașina de la distanță, trebuie să creăm un director .ssh. Executarea comenzii pe o mașină la distanță va fi discutată mai jos. Pentru moment, doar copiați comanda, fără a uita să schimbați adresa IP și numele de utilizator cu propriile dvs.:

Ssh [email protected] mkdir.ssh

Acum trebuie să copiem conținutul fișierului id_rsa.pub pe mașina de la distanță. Acest lucru este foarte ușor de făcut (nu uitați să schimbați datele cu ale dvs.):

Cat .ssh/id_rsa.pub | ssh [email protected]„cat >> .ssh/authorized_keys”

Acum doar ne conectăm și nu ne mai cer nicio parolă. Și va fi mereu așa acum.

Executarea comenzilor pe un server la distanță fără a crea o sesiune shell

Pe lângă deschiderea unei sesiuni shell pe un sistem la distanță, ssh vă permite și să executați comenzi individuale pe sistemul de la distanță. De exemplu, pentru a rula comanda arborescentă pe o gazdă la distanță numită remote-sys și pentru a afișa rezultatele pe sistemul local, ați proceda astfel:

arborele ssh remote-sys

exemplul meu real:

Ssh [email protected] copac

Folosind această tehnică puteți face lucruri interesante, cum ar fi rularea unei comenzi ls pe un sistem la distanță și redirecționarea rezultatului către un fișier de pe sistemul local:

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

Exemplu real:

Ssh [email protected]"ls *" > dirlist.txt cat dirlist.txt

Observați ghilimele simple din comanda de mai sus. Acest lucru se datorează faptului că nu dorim ca extinderea căii să se facă pe mașina locală; pentru că avem nevoie de această execuție pe un sistem la distanță. De asemenea, dacă dorim să redirecționăm ieșirea standard către un fișier de pe mașina de la distanță, putem pune instrucțiunea de redirecționare și numele fișierului între ghilimele simple:

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

Transferarea ieșirii standard de la o mașină locală la o mașină la distanță prin ssh

O opțiune la fel de interesantă pentru executarea comenzilor este dată puțin mai sus:

Cat .ssh/id_rsa.pub | ssh [email protected]„cat >> .ssh/authorized_keys”

  • Comanda cat citește linie cu linie și afișează conținutul fișierului .ssh/id_rsa.pub aflat pe mașina locală.
  • | (pipe) transmite ceea ce ar apărea pe ieșirea standard către o altă comandă.
  • În loc de o comandă care ar procesa șirurile transmise acesteia, se face o conexiune la sistemul de la distanță (ssh [email protected]).
  • Sistemul de la distanță primește linii pentru care este furnizată comanda cat >> .ssh/authorized_keys. Acestea. conținutul ieșirii standard este scris linie cu linie în fișierul .ssh/authorized_keys aflat pe mașina de la distanță.

Deschiderea unui program de grafică situat pe un computer la distanță

Următorul truc necesită două computere Linux. Din păcate, nici măcar Cygwin nu poate face față acestui truc. Mai mult, ambele sisteme Linux trebuie să aibă o interfață grafică cu utilizatorul.

Tunnelare cu SSH

Printre altele, care se întâmplă atunci când se stabilește o conexiune cu o gazdă la distanță prin SSH este crearea unui tunel criptat care se formează între sistemele locale și cele de la distanță. De obicei, acest tunel este folosit pentru a se asigura că comenzile tastate pe mașina locală sunt transmise în siguranță către o mașină la distanță, iar rezultatul este, de asemenea, trimis înapoi în siguranță.

Pe lângă această funcționalitate de bază, protocolul SSH permite ca majoritatea tipurilor de trafic să fie trimise printr-un tunel criptat, creând un fel de VPN (rețea privată virtuală) între sistemele locale și cele de la distanță.

Poate cea mai folosită dintre aceste caracteristici este capacitatea de a difuza traficul sistemelor X Window. Pe un sistem care rulează un server X (acestea sunt mașini care au o interfață grafică cu utilizatorul), este posibil să rulați un program client X (aplicație grafică) pe sistemul de la distanță și să vedeți rezultatele funcționării acestuia pe sistemul local. Este ușor de făcut. De exemplu, vreau să mă conectez la gazda de la distanță remote-sys și pe ea vreau să rulez programul xload. În același timp, voi putea vedea rezultatul grafic al acestui program pe computerul local. Acest lucru se face astfel:

ssh -X remote-sys

Exemplu real:

Ssh -X [email protected] gedit

Acestea. SSH începe cu comutatorul -X. Și apoi pur și simplu începe programul. Uită-te la captura de ecran.

Sunt pe Kali Linux. Mă conectez cu succes la un computer la distanță prin SSH. După aceea am rulat programul gedit. Acest program poate să nu fie nici măcar pe Kali Linux, dar cu siguranță este pe Linux Mint, la care m-am conectat. Pot vedea rezultatul acestui program pe ecran ca și cum programul ar rula local. Dar din nou, vreau să înțelegeți acest lucru, nu există niciun program gedit care rulează pe computerul local. Dacă vreau să salvez rezultatul gedit (sau orice alt program deschis în acest fel), se dovedește că funcționează în mediul computerului la distanță, își vede sistemul de fișiere etc. Acest lucru este convenabil atunci când doriți să configurați computer la distanță folosind o interfață grafică.

Veți învăța cum să transferați o imagine de pe întregul desktop în același articol mai târziu, în secțiunea „Cum se configurează VNC prin SSH”.

Pe unele sisteme, acest truc necesită utilizarea opțiunii -Y în loc de opțiunea -X.

Copiere de pe/pe un computer la distanță (scp și sftp)

scp

Pachetul OpenSSH include, de asemenea, două programe care utilizează un tunel SSH criptat pentru a copia fișiere în rețea. Primul program - scp(„copie securizată”) - folosit mai des, ca programul similar cp pentru copierea fișierelor. Cea mai vizibilă diferență este că sursa fișierului poate fi gazda la distanță urmată de două puncte și de locația fișierului. De exemplu, dacă dorim să copiem un document numit document.txt din directorul nostru principal în remote-sys în directorul de lucru curent al sistemului nostru local, am putea face acest lucru:

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

Exemplu real:

# ștergeți fișierul de pe mașina locală dacă acesta există rm dirlist.txt # creați un fișier pe mașina de la distanță ssh [email protected]"ls * > dirlist.txt" # verificați prezența sa ssh [email protected]"ls -l" # copiați-l în mașina locală scp [email protected]:dirlist.txt. # verificați conținutul cat dirlist.txt

Pentru a copia un fișier de pe o mașină locală pe o mașină la distanță:

scp local_file remote-sys:.

Exemplu real

# creați un fișier nou atingeți nfile.txt # trimiteți fișierul scp nfile.txt [email protected]:. nfile.txt 100% 0 0.0KB/s 00:00 # verificați prezența fișierului pe mașina de la distanță ssh [email protected]"ls -l"

În comanda de trimitere:

  • nfile.txt - numele fișierului,
  • [email protected]— nume de utilizator și gazdă la distanță,
  • . (punct) înseamnă că fișierul trebuie copiat în directorul de lucru curent de pe serverul la distanță, dar numele fișierului va rămâne același, adică nfile.txt

Notificare:

Pentru a copia un fișier din B în A când sunteți conectat la B:

scp /cale/la/fișier nume utilizator@a:/cale/la/destinație

Copierea unui fișier din B în A când sunteți conectat la A:

scp nume utilizator@b:/cale/la/fișier /cale/la/destinație

sftp

Al doilea program pentru copierea fișierelor prin SSH este sftp. După cum sugerează și numele, este un înlocuitor sigur de program ftp. sftp funcționează ca programul ftp original. Cu toate acestea, în loc să trimită text simplu, folosește un tunel SSH criptat. Un avantaj important al sftp față de ftp este că nu necesită un server FTP care rulează pe o gazdă la distanță. Este nevoie doar de un server SSH. Aceasta înseamnă că orice mașină la distanță care este conectată printr-un client SSH poate fi folosită și ca server asemănător FTP. Iată un exemplu de sesiune:

Alex@MiAl-PC ~ $ sftp [email protected] Conectat la 192.168.1.36. sftp> ls dirlist.txt newfile.txt nfile.txt temp Videoclipuri Documente Descărcări Imagini Muzică Public Desktop Templates sftp> lls dirlist.txt nfile.txt sftp> ls temp temp/TakeMeHome sftp> cd temp/ sftp> get TakeMeHome Preluare /home / mial/temp/TakeMeHome la TakeMeHome sftp> pa

Protocolul SFTP este acceptat de mulți manageri de fișiere grafice care pot fi găsite în distribuțiile Linux. Folosind atât Nautilus (GNOME), cât și Konqueror (KDE), putem introduce URI-uri (link-uri) începând cu sftp:// în bara de salt și să lucrăm cu fișiere situate pe un sistem de la distanță care rulează un server SSH.

Garantul este un intermediar de încredere între Participanți în timpul tranzacției.