SSH

traducere(E): Deutsch – English – Fran Inktifais – Italiano – Espa Inktifol – Portuguese Inktif Brasileiro

ToDo: merge (și traduce) această pagină și cea Franceză (mai complet)

Introducere

SSH standuri pentru Secure Shell și este un protocol pentru conectare la distanță sigură și alte servicii de rețea securizate pe NETWORK1. Consultați Wikipedia-Secure Shell pentru informații mai generale și ssh, LSH-client sau dropbear pentru implementările software SSH din care OpenSSH este cel mai popular și cel mai utilizat 2. SSH înlocuiește Telnet necriptate, rlogin și rsh și adaugă multe caracteristici.

în acest document vom folosi suita de comandă OpenSSH, se va presupune, de asemenea, că sunt definite următoarele două variabile:

remote_host=<the remote computer>remote_user=<your user name on $remote_host>

deci, dacă doriți să utilizați rețetele de mai jos, setați mai întâi aceste variabile la numele computerului la distanță și la numele de utilizator de pe acel computer la distanță. Apoi tăiați și lipiți comenzile de mai jos ar trebui să funcționeze. remote_host poate fi, de asemenea, o adresă IP.

instalare

instalarea clientului

în mod normal, clientul este instalat în mod implicit. Dacă nu este suficient pentru a rula ca root:

apt install openssh-client

instalarea serverului

serverul permite conectarea de la distanță și se instalează rulând ca root:

apt install openssh-server

fișiere de configurare

fișierele principale de configurare sunt în directorul / etc / ssh :

  • ssh_config: fișier de configurare client

  • sshd_config: fișier de configurare server

în plus, acest director conține perechile de chei private / publice care identifică gazda dvs :

  • ssh_host_dsa_key
  • ssh_host_dsa_key.pub
  • ssh_host_rsa_key
  • ssh_host_rsa_key.pub

începând cu OpenSSH 5.73, este disponibilă o nouă pereche de chei private/publice:

  • ssh_host_ecdsa_key
  • ssh_host_ecdsa_key.pub

începând cu OpenSSH 6.54, este disponibilă o nouă pereche de chei private/publice:

  • ssh_host_ed25519_key
  • ssh_host_ed25519_key.pub

regenerare chei gazdă

rm /etc/ssh/ssh_host_*dpkg-reconfigure openssh-server

conectare la distanță

cu parola

dacă doriți să vă conectați la $remote_host ca utilizator $remote_user pur și simplu tastați

ssh $remote_user@$remote_host

și apoi tastați parola.

dacă numele de utilizator de pe computerul local și de la distanță sunt identice, puteți renunța la $remote_user@-part și pur și simplu scrieți

ssh $remote_host

dacă aceasta este prima dată când vă conectați la computerul la distanță, ssh vă va întreba dacă sunteți sigur că doriți să vă conectați la computerul la distanță. Răspundeți ‘ da ‘ după ce ați verificat amprenta computerului la distanță, introduceți parola și ssh vă va conecta la gazda la distanță.

utilizarea tastelor partajate

una dintre funcțiile ssh este utilizarea unei perechi de chei private/publice pentru a vă conecta la o gazdă la distanță. De asemenea, cunoscut sub numele de chei SSH. Această metodă vă permite să vă conectați la o gazdă la distanță fără a introduce parola de fiecare dată. Pentru a face acest lucru, trebuie să generați o pereche de chei private/publice pe mașina dvs. locală și să depuneți cheia publică pe gazda de la distanță.

pentru a genera cheia, utilizați programul ssh-keygen după cum urmează

ssh-keygen -t rsa

acest program generează o pereche de chei private/publice în directorul ~/.ssh. Programul solicită mai întâi fișierele de destinație pentru chei, în mod implicit situate în ~/.ssh. Ulterior se solicită o frază de acces.

Notă: Vă recomandăm să nu lăsați fraza de acces goală. Un atacator care pune mâna pe cheia dvs. privată se poate conecta altfel la gazdele în care v-ați depus cheia publică, deoarece fraza de acces este goală. Alegeți o frază de acces lungă și complexă.

cheia dvs. privată este id_rsa (nu o dați altcuiva), cheia dvs. publică este id_rsa.pub.

copiați cheia publică într-o gazdă la distanță cu comanda ssh-copy-id

ssh-copy-id -i ~/.ssh/id_rsa.pub $remote_user@$remote_host

acum vă puteți conecta pur și simplu la gazda la distanță și se solicită parola. După ce ați terminat, vă conectați la gazda de la distanță. În cazul unei noi conexiuni, fraza de acces nu este solicitată din nou în timpul întregii sesiuni.

gestionarea cheilor

folosind GUI

opțional, seahorse este o aplicație GNOME care gestionează cu ușurință cheile de criptare și parolele printr-o interfață grafică intuitivă (GUI). Seahorse este capabil să facă diverse operații. Cum ar fi creați chei SSH sau PGP, configurați-le și cache-le. Citește mai mult.

securizare

server SSH

implicit un server SSH este relativ sigur. Cu ajutorul unor bune practici, Opțiuni de configurare, și utilitare externe este posibil pentru a face chiar mai greu pentru ‘roboți’ și crackers

bune practici cu SSH Server

  • /!\ aplicați actualizările de securitate openssh-server cât mai curând posibil. Care permite protejarea împotriva găurilor de securitate cunoscute.

  • activați autentificarea cheilor SSH numai cu parole / fraze de acces. Dezactivați autentificarea numai prin parolă.

  • luați în considerare utilizarea fail2ban, care este un monitor de fișiere jurnal care interzice automat o adresă IP după un număr predefinit de încercări de conectare eșuate. Care protejează automat împotriva atacurilor brute-force.

  • mai multe bune practici pentru utilizarea ssh la https://lackof.org/taggart/hacking/ssh/

Opțiuni de configurare

(!) unul ar trebui să editați fișierul / etc / ssh / sshd_config pentru a modifica parametrii și apoi reporniți serverul ssh cu

service ssh restart
  • dezactivați utilizarea parolelor pentru autentificare (PasswordAuthentication no).

  • dezactivați utilizând contul root (PermitRootLogin no).

  • permiteți conectarea numai de către anumiți utilizatori sau grupuri (AllowUsers și AllowGroups)

{i} opțiunile AllowUsers și AllowGroups nu îmbunătățesc securitatea unui server SSH. Dar, în anumite cazuri, utilizarea lor permite să reziste unui atac de forță brută puțin mai mult.

utilități externe

  • fail2ban: permite automat lista neagră IP-uri care încearcă să brute force un server SSH cu ajutorul iptables.

  • denyhosts : ca fail2ban, denyhosts permite blocarea adreselor IP încercând să forțeze brute o conexiune la ssh. Dar, spre deosebire de fail2ban, nu folosește iptables, ci fișierul /etc/hosts.neagă.

client SSH

bune practici cu client SSH

  • /!\ aplicați actualizările de securitate openssh-client cât mai curând posibil. Care permite protejarea împotriva găurilor de securitate cunoscute.

  • utilizați autentificarea cheilor SSH. Mai degrabă decât autentificarea prin parolă.

  • adăugați parole puternice / fraze de acces la cheile SSH. Acest lucru reduce riscul de atacuri brute-force.

funcții suplimentare

Vizualizați fișierele în GUI

în managerii de fișiere precum Konqueror, Dolphin, Krusader și Midnight Commander puteți utiliza FISH pentru a vizualiza fișierele într-o interfață grafică folosind:

fish://username@server_name_or_ip

comenzi suplimentare

scp

scp este un utilitar de linie de comandă care permite transferul de fișiere între două mașini.

  • trimiterea unui fișier:
scp $source_file $remote_user@$remote_host:$destination_file
  • copierea unui fișier pe mașina locală:
scp $remote_user@$remote_host:$source_file $destination_file

sftp

mod text

mod grafic

clusterssh

ssh-agent și ssh-add

ssh-agent este un utilitar util pentru a gestiona cheile private și frazele lor de acces. Majoritatea mediilor desktop din Debian vor fi deja configurate pentru a rula ssh-agent (prin systemd user services sau /etc/X11/Xsession), deci nu ar trebui să fie nevoie să îl porniți manual.

# Check if ssh-agent is runningenv | grep -i ssh

va trebui totuși să spuneți agentului să vă gestioneze cheile.

# List keys managed by the agentssh-add -l# Add your ssh keyssh-add ~/.ssh/your_private_key

când este necesară mai întâi o cheie privată, vi se solicită expresia de acces a acesteia. ssh-agent va aminti apoi cheia, astfel încât fraza dvs. de acces să nu mai fie întrebată.

keychain

Keychain, furnizat de pachetul keychain, este un script shell care permite utilizarea agentului ssh în mai multe sesiuni ale aceluiași computer. În vigoare după prima pornire ssh-agent creează un soclu permanent care să permită comunicarea cu ssh. Acest soclu este menționat numai în mediul sesiunii în care a fost pornit agentul. Keychain permite detectarea agentului și propagarea accesului la acest agent la alte sesiuni; acest lucru permite utilizarea unei singure instanțe de ssh-agent per utilizator pe o mașină.

ssh-askpass

ssh-askpass este un utilitar pentru a pur și simplu întrebarea pentru parola unei chei private atunci când se utilizează. Există mai multe implementări:

  • x11-ssh-askpass: versiune pentru X11

  • kaskpass: integrarea ssh-askpass în mediul KDE

  • ssh-askpass-gnome : integrarea ssh-askpass în mediul Gnome

libpam-usb

libpam-usb este un utilitar (disponibil numai până la Debian Jessie) care permite autentificarea cu un stick USB. Acest pachet include un utilty util: pamusb-agent. Acest utilitar, Odată configurat corect, permite încărcarea tastelor SSH prezente pe stick-ul USB odată ce este conectat și descărcarea acestora atunci când este deconectat.

comenzi la distanță

dacă doriți doar să rulați o comandă pe computerul la distanță, nu trebuie să vă conectați. Puteți spune ssh pentru a rula comanda fără conectare, de exemplu,

ssh $remote_user@$remote_host 'ls *.txt'

listează toate fișierele cu extensie .txt pe computerul la distanță. Acest lucru funcționează cu ghilimele simple…”așa cum se arată aici, cu ghilimele duble „…”, și fără citate. Cu toate acestea, pot exista diferențe între aceste trei cazuri, care nu sunt încă documentate aici.

SSH în Debian dintr-un alt sistem de operare

  • PuTTY este o aplicație emulator terminal care poate acționa ca un client pentru ssh. Este utilizat pe scară largă de utilizatorii Windows.

  • Wikipedia are Comparație_of_ssh_clients

bune practici de utilizare SSH

trebuie să citiți acest lucru: https://lackof.org/taggart/hacking/ssh/

acest document rezumă multe bune practici pe care utilizatorii SSH obișnuiți ar trebui să le urmeze pentru a evita compromiterea securității conturilor lor (și a întregului aparat în același timp).

configurați ~/.ssh / config pentru a trimite doar cheia potrivită.

Host master.debian.org User account IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes

depanare

nepotrivire Versiune OpenSSL. Construit împotriva 1000105f, aveți 10001060

Dacă primiți un mesaj de eroare ca acesta la pornirea daemonului ssh, trebuie să rulați:

apt install openssh-server openssh-client

de asemenea, a se vedea bug #732940.

SSH se blochează

problemă

încercați să SSH într-un computer la distanță. Dar în timpul SSH log-in sesiunea se blochează / îngheață pe termen nelimitat. Astfel, nu vi se prezintă promptul de comandă. Și nu sunt capabili de a utiliza orice comenzi SSH : ( atunci când se utilizează modul de depanare SSH sesiunea se blochează la această linie debug2: canal 0: deschideți confirmați rwindow 0 rmax 32768

Cauză posibilă

cu unele routere în spatele NAT și când utilizați OpenSSH. În timpul setării sesiunii, după ce parola a fost dată, OpenSSH setează câmpul TOS (type of service) din datagrama IP. Router-ul sufoca pe asta. Efectul este că sesiunea SSH se blochează la nesfârșit. Cu alte cuvinte, comenzile SSH sau conexiunile rareori funcționează sau nu funcționează deloc.

rezoluție cu IPQoS 0x00

până când producătorul routerului își remediază firmware-ul. Iată o opțiune pentru a rezolva această problemă:

  1. verificați dublu versiunea openssh-server și openssh-client sunt 5.7 sau mai recente. De exemplu, rezoluția de mai jos ar trebui să funcționeze cu Debian 7.11 Wheezy sau mai recent, deoarece vine cu versiunea OpenSSH 6.0.

  2. editați unul dintre următoarele două fișiere situate la:

    ~/.ssh/config

    sau

    /etc/ssh/ssh_config

    notă: fișierul de configurare este per utilizator și fișierul ssh_config este pentru toți utilizatorii și la nivel de sistem. Dacă nu sunteți sigur editați fișierul de configurare al utilizatorului corespunzător.

    conținutul fișierului înainte de

    Host *

    conținutul fișierului după

    Host * IPQoS 0x00
  3. dacă aveți deja deschise ferestre Terminal / consolă. Închideți-le pe toate. Acest lucru va închide orice sesiuni SSH active.
  4. nu este nevoie să reporniți OpenSSH sau Debian. Încercați din nou să SSH în orice server de la distanță. Ar trebui să funcționeze. Ați rezolvat cu succes această problemă :)

    mulțumesc lui Joe și catmaker pentru acest sfat :)

    documentația aferentă la https://www.openssh.com/txt/release-5.7

rezoluție cu netcat

/!\ avertisment: se recomandă să luați în considerare utilizarea acelei alte rezoluții cu IPQoS 0x00 în loc să utilizați opțiunea netcat/ProxyCommand NC %h %p. Deoarece IPQoS 0x00 este opțiunea oficială OpenSSH încorporată. De asemenea, IPQoS 0x00 este o modalitate mai directă de a rezolva această problemă și o opțiune potențial mai sigură. Deoarece IPQoS 0x00 utilizează SSH construit în criptare pentru transferuri sigure. Comparați cu transferurile netcat nu criptate. Surse: 1 2. Dacă alegeți să utilizați opțiunea netcat/ProxyCommand nc %h %p citiți mai departe.

o altă opțiune pentru a rezolva această problemă SSH se blochează este de a utiliza ProxyCommand nc %h %p. Pentru a face acest lucru, urmați aceiași pași ca și rezoluția de mai sus cu IPQoS 0x00. Dar înlocuiți IPQoS 0x00 cu

ProxyCommand nc %h %p

mențineți conexiunea SSH în viață

din motive de securitate, în mod implicit o conexiune SSH este închisă automat după o perioadă de timp stabilită. Dar, în unele cazuri, doriți să păstrați această conexiune deschisă. Cum ar fi stocarea în cloud prin conexiunea SSH.

/!\ avertisment:înainte de a activa opțiunea keep SSH connection alive. Se recomandă să luați în considerare securizarea atât a clientului SSH, cât și a serverului SSH. Deoarece, de exemplu, există riscul ca, dacă utilizatorii dvs. să-și lase sesiunea SSH deschisă și computerul lor nesupravegheat și deblocat. Oricine se poate apropia de acel computer, apoi poate exploata acea conexiune SSH deschisă. De exemplu, utilizând comanda passwd și schimbați parola. Și astfel obțineți acces la server. Cu alte cuvinte, înainte de a activa această opțiune keep SSH connection alive, se recomandă să utilizați cea mai bună judecată și bune practici de securitate.

Pentru Debian 7.X server

pași pentru a menține conexiunea SSH în viață.

pe serverul SSH editați fișierul /etc/ssh/sshd_config și adăugați următoarele în partea de jos a fișierului respectiv.

# Keep client SSH connection alive by sending every 300 seconds a small keep-alive packet to the server in order to use ssh connection. 300 seconds equal 5 minutes.ClientAliveInterval 300 # Disconnect client after 3333 "ClientAlive" requests. Format is (ClientAliveInterval x ClientAliveCountMax). In this example (300 seconds x 3333) = ~999,900 seconds = ~16,665 minutes = ~277 hours = ~11 days.ClientAliveCountMax 3333

ca utilizator root reporniți serviciul SSH:

service sshd restart

vă rugăm să rețineți că pe sistemele Debian recente (de exemplu, Wheezy 7 cu actualizări curente din noiembrie. 2015), comanda de mai sus nu mai funcționează și returnează eroarea:

sudo service sshd restartsshd: unrecognized service

cu toate acestea, următoarele lucrări:

sudo service ssh restart Restarting OpenBSD Secure Shell server: sshd.

Vezi și

  • ecran-terminal multiplexor cu emulare terminal VT100/ANSI

  • tmux-multiplexor terminal alternativ

Categoriesoftware

Lasă un răspuns

Adresa ta de email nu va fi publicată.