Cum să autentificați peste SSH cu chei în loc de parole

Cum să autentificați peste SSH cu chei în loc de parole / Linux

SSH este o modalitate foarte bună de a obține accesul de la distanță la computer. Similar cu FTP, vă puteți conecta peste SSH FTP Ce SSH este și cum este diferit de FTP [Technology Explained] Ce SSH este și cum este diferit de FTP [Technology Explained] Citiți mai multe pentru a obține acces securizat la un server de fișiere cu FTP preferat Client Master FTP transferă fișiere pe toate site-urile dvs. cu FileZilla Master FTP transferă fișiere pe toate site-urile dvs. cu FileZilla Un număr mare de clienți FTP de vechi au avut sughiț atunci când a ajuns la transferuri mari de fișiere. Aplicațiile au înregistrat perioadele de așteptare obișnuite pe care le-ați aștepta atunci când computerul se află acolo pentru 15 ... Citește mai mult, accesând rapid fișierele la distanță sau chiar montarea unui disc de rețea pe computer. Dar există mai mult pentru SSH decât accesul la fișiere la distanță. Logarea peste SSH în Terminal (sau folosind PuTTY pe Windows) vă oferă acces la shell shell (la urma urmei, SSH este scurt pentru Secure Shell). Este modul în care gestionez serverul media de la distanță.

Când deschideți porturile Ce este portul de expediere și cum mă poate ajuta? [Explicarea MakeUseOf] Ce este portul de expediere și cum mă poate ajuta? [MakeUseOf explică] Plângeți puțin înăuntru când cineva vă spune că există o problemă de expediere a portului și de aceea noua dvs. aplicație strălucitoare nu va funcționa? Xbox-ul dvs. nu vă va permite să jucați jocuri, descărcările de torrent refuză ... Citiți mai mult pe routerul dvs. (portul 22 pentru a fi exact) nu puteți accesa numai serverul SSH din rețeaua locală, ci din orice loc din lume.

Cu toate acestea, nu doriți să riscați să utilizați o parolă slabă pentru autentificare. Dacă cineva obține acces la computerul dvs. prin SSH, acesta obține acces complet la shell. Doar pentru a fi clar, nu este ceva ce ne dorim. Din fericire, este foarte ușor să vă configurați serverul SSH global într-o manieră foarte sigură, utilizând autentificarea pe bază de chei și autentificarea parolei pe serverul dvs. în totalitate.

Este pentru mine?

Este tentant să crești laxă cu siguranță personală. Dacă utilizați serverul pentru mijloace private, ați putea crede că oamenii pur și simplu nu știu despre serverul dvs. și, prin urmare, nu vor încerca să-l hack - securitatea prin obscuritate. Asta ar fi a foarte presupunere greșită. Deoarece traficul SSH (cel mai) este transmis pe portul 22, atacatorii verifică în mod curent vizibilitatea portului 22 pe adrese IP aleatorii, urmată de un atac de forță brute. Acesta este unul dintre modurile în care botneturile sunt făcute pentru a fi utilizate în atacurile DDOS. Ce este un atac DDoS? [Explicarea MakeUseOf] Ce este un atac DDoS? [Explicarea MakeUseOf] Termenul DDoS fluiera trecut ori de câte ori activitățile cibernetice își reiau capul en masse. Aceste atacuri fac titluri internaționale din mai multe motive. Problemele care declanșează aceste atacuri DDoS sunt adesea controversate sau foarte ... Citește mai mult .

Pentru a face o poveste lungă scurtă: dacă difuzați serverul SSH pe internet (de ex. Portul 22 înainte), atunci da, acesta este pentru dvs..

Ideea de conectare SSH bazată pe chei

Interfața SSH bazată pe chei se bazează pe ideea criptografiei cu chei publice. Ne-ar lua prea mult pentru a explica intricaciile, dar vom încerca să picteze o imagine simplă a ceea ce se întâmplă în spatele scenei.

În procesul de mai jos, computerul dvs. client generează două chei: o cheie publică și o cheie privată. Ideea generală este că puteți cripta datele cu cheia publică, dar numai să le decriptați cu cheia privată. Vom pune cheia publică pe server și îi vom cere să cripteze toată comunicarea cu el. Acest lucru face ca numai acei clienți care dețin cheia privată să decripteze și să citească datele.

1. Instalați OpenSSH

Mai întâi, vom configura un server SSH utilizând OpenSSH. Dacă aveți deja un server SSH care rulează și doriți doar să știți cum să configurați autentificarea bazată pe chei, puteți trece peste acest pas. Utilizați managerul de pachete preferate pentru a instala aplicația de server OpenSSH. Cea mai simplă modalitate ar putea fi să rulați apt-get comandă de la Terminal.

sudo apt-get instala openssh-server

Introduceți parola, confirmați și așteptați un minut pentru a termina instalarea. Felicitări, acum aveți un server SSH. (A fost ușor!)

Puteți utiliza aplicația ca atare sau puteți să o editați / Etc / ssh / sshd_config pentru ao configura. Pornește omul sshd_config comandă în Terminal pentru a obține mai multe informații. O altă resursă excelentă pentru a afla mai multe despre OpenSSH este pagina de ajutor relevantă pentru Ubuntu.

2. Generați chei

Vom genera un set de chei. Rulați următoarele comenzi (adaptate din pagina de ajutor OpenSSH / Keys Ubuntu).

mkdir ~ / .ssh
chmod 700 ~ / .ssh
ssh-keygen -t rsa

Prima comandă creează un director ascuns ".ssh" în dosarul dvs. de domiciliu, a doua comandă modifică permisiunile de acces ale dosarului, în timp ce a treia comandă generează de fapt un set de chei RSA. În primul rând vi se va solicita o locație pentru salvarea cheilor (lăsați necompletate și apăsați pe Enter pentru a salva în locația implicită) și a doua pentru o expresie de acces.

Această expresie de acces criptează în continuare cheia privată stocată pe computer, oferindu-vă, în esență, mai mult timp pentru a vă asigura serverul SSH dacă cheia dvs. privată este vreodată furată. Asigurați-vă că alegeți o frază de parolă pe care o puteți reține, deoarece va trebui să o introduceți când încercați să utilizați cheia.

3. Transferați cheia publică

Apoi, va trebui să transferați cheia publică pe care ați generat-o în etapa anterioară pe computerul serverului SSH. Dacă mașina dvs. client rulează și Linux, acest lucru poate fi realizat foarte ușor prin rularea comenzii de mai jos (înlocuind și pentru numele de utilizator și adresa IP de pe serverul dvs. SSH).

ssh-copy-id @

Dacă clientul dvs. nu acceptă comanda ssh-copy-id, puteți folosi comanda de mai jos. Este un pic mai complicat, dar, în esență, atinge aceleași rezultate.

cat ~ / .ssh / id_rsa.pub | ssh @ "mkdir ~ / .ssh; cat >> ~ / .ssh / authorized_keys"

Vi se va cere să introduceți parola de utilizator pentru serverul SSH. Dacă comenzile se execută fără erori, cheia dvs. publică va fi fost copiată pe server.

4. Dezactivați autentificarea prin parolă

Rețineți că sistemul dvs. nu este încă mai sigur decât după primul pas. Deși cel puțin un client este configurat să utilizeze autentificarea pe bază de chei, acest lucru lasă încă loc pentru alți clienți să se conecteze cu o parolă. Pentru a termina, vom dezactiva autentificarea parolei cu totul. După această etapă, numai computerele care au trecut prin procesul de mai sus se pot conecta la serverul SSH.

Pentru a dezactiva autentificarea prin parolă, editați / Etc / ssh / sshd_config fișier în editorul dvs. preferat. Una dintre cele mai simple moduri de a edita un fișier restrâns este, din nou, Terminal. (Sunt parțial la nano, dar poți folosi tot ce-ți convine.)

sudo nano / etc / ssh / sshd_config

Aproximativ 40 de linii din partea de jos a fișierului, veți găsi

#PasswordAuthentication da

Eliminați semnul numeric (#) și schimbați setarea la "nu", după cum urmează.

PasswordAuthentication nr

Fișierul final ar trebui să arate astfel:

Salvați fișierul apăsând CTRL + X. Confirmați editarea și numele fișierului și ați terminat aproape. Doar reporniți serverul SSH pentru al rula cu aceste setări noi.

sudo reporni ssh

De asemenea, veți observa că clientul dvs. va întrerupe solicitarea expresiei de acces pentru a decripta cheia dacă autentificarea parolei este dezactivată pe server. Acum, că aveți un server securizat SSH, cum intenționați să îl utilizați? Ca un server de fișiere sigur, o shell shell sau pentru a trimite alte servicii prin SSH? Spuneți-ne în secțiunea de comentarii de mai jos!

Credit de imagine: Shutterstock

Explorați mai multe despre: Securitate online, Acces de la distanță.