traducere(E): Deutsch – English – Fran Inktifais – Italiano – Espa Inktifol – Portuguese Inktif Brasileiro
ToDo: merge (și traduce) această pagină și cea Franceză (mai complet)
- Introducere
- instalare
- instalarea clientului
- instalarea serverului
- fișiere de configurare
- regenerare chei gazdă
- conectare la distanță
- cu parola
- utilizarea tastelor partajate
- gestionarea cheilor
- folosind GUI
- securizare
- server SSH
- bune practici cu SSH Server
- Opțiuni de configurare
- utilități externe
- client SSH
- bune practici cu client SSH
- funcții suplimentare
- Vizualizați fișierele în GUI
- comenzi suplimentare
- scp
- sftp
- mod text
- mod grafic
- clusterssh
- ssh-agent și ssh-add
- keychain
- ssh-askpass
- libpam-usb
- comenzi la distanță
- SSH în Debian dintr-un alt sistem de operare
- bune practici de utilizare SSH
- depanare
- nepotrivire Versiune OpenSSL. Construit împotriva 1000105f, aveți 10001060
- SSH se blochează
- rezoluție cu IPQoS 0x00
- rezoluție cu netcat
- mențineți conexiunea SSH în viață
- Pentru Debian 7.X server
- Vezi și
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)
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ă:
-
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.
-
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
- dacă aveți deja deschise ferestre Terminal / consolă. Închideți-le pe toate. Acest lucru va închide orice sesiuni SSH active.
-
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