server de autentificare folosind chei SSH

OpenSSH cu excepția parolelor acceptă mai multe metode de autentificare. Acesta poate fi configurat să utilizeze metode PAM (modulele de autentificare atașabile), provocare de protocol / răspuns, Kerberos, autentificare, gazdele de încredere și Exotica, cum ar fi cheile X509. Dar, cel mai popular este metoda de identitate / Pubkey.

Iată câteva dintre aspectele pozitive ale acestui tip de autentificare:

  • Nimeni nu poate conecta la server cu contul dvs., deoarece acestea trebuie să aibă o cheie privată și expresia de acces.
  • Administratorul server poate elimina chiar și parola contului, pentru a exclude discreditarea acesteia.
  • Puteți folosi ssh-agent de utilitate și va furniza informații de autentificare pentru tine.
  • Puteți seta anumite restricții, cum ar fi interzicerea port forwarding, executie
    anumite programe, etc.

În acest articol ne vom uita la metoda de creare și configurarea contului cheie.

Crearea de identitate / Pubkey

În punerea în aplicare inițială SSHv1 ați putea crea identitate, care a fost o pereche de RSA publice și chei private. Formatul acestor cheie SSHv2 a fost modificată, din oțel sprijinit chei RSA și DSA, iar această autentificare a fost redenumit Pubkey. În contextul acestui articol, aceste notatii vor fi folosite alternativ ca funcții identice de punere în aplicare.

Utilizați utilitarul ssh-keygen va crea cheile necesare:

mydesktop $ ssh-keygen -t rsa
Generarea rsa pereche de chei publice / private.
Introduceți fișierul în care pentru a salva tasta (/home/xahria/.ssh/id_rsa):
Introduceți expresia de acces (gol pentru nici o frază de acces): (introduceți expresia de acces)
Introduceți același cod din nou: (introduceți expresia de acces)
Identificarea a fost salvat în /home/xahria/.ssh/id_rsa.
Cheia dvs. publică a fost salvată în /home/xahria/.ssh/id_rsa.pub.
Semnătura cheii publice este:
2c: 3f: a4: be: 46: 23 47: 19: f7: dc: 74: 9b: 69: 24: 4a: 44 xahria @ mydesktop

mydesktop $ cd $ HOME / .ssh
mydesktop $ ls -l
-rw ------- 1 xahria hatchclan 883 21 ianuarie 11:52 id_rsa
-rw-r - r-- 1 xahria hatchclan 223 21 ianuarie 11:52 id_rsa.pub

mydesktop $ pisică id_rsa
-----BEGIN RSA Cheie privată -----
MIICWgIBAAKBgQCc + 1oixZ / g84gpZH0NeI + CvVoY5O0FOCSpFCbhUGJigQ6VeKI5
gpOlDztpJ1Rc + KmfZ2qMaftwwnLmefhk1wPcvfZvvLjfdmHY5 / LFgDujLuL2Pv + F
7tBjlyX9e9JfXZau2o8uhBkMbb3ZqYlbUuuoCAnUtL5uZUiiHM0BAtnGAd6epAYE
gBHw1xnqsy + mzbuWdLEVF7crlUSsctwGapb6 / SEQgEXFm0RITQ3jCY808NjRS3hW
Z + uCCO8GGUsn2bZpcGXa5vZzACvZL8epJoMgQ4D0T50rAkEA0AvK4PsMF02Rzi4E
mXgzd1yCa030LYR / AkApG1KT // 9gju6QCXlWL6ckZg / QoyglW5myHmfPR8tbz + 54
/ Lj06BtBA9iag5 + x + caV7qKth1NPBbbUF8Sbs / WI5NYweNoG8dNY2e0JRzLamAUk
jK2TIwbHtE7GoP / Za3NTZJm2Ozviz8 + PHPIEyyt9 / kzT0 + yo3KmgsstlqwIBIwKB
XdBh42izEWsWpXf9t4So0upV1DEcjq8CQQDEKGAzNdgzOoIozE3Z3thIjrmkimXM
J / Y3xQJBAMEqZ6syYX / + Urt + any1LADRebCq6UA076Sv1dmQ5HMfPbPuU9d3yOqV
j0Fn2H68bX8KkGBzGhhuLmbrgRqr3 + SPM / frUj3UyYxns5rnGspRkGB3AkALCbzH
9EAV8Uxn + Jhe5cgAC / hTPPdiwTJD7MpkNCpPuKRwrohytmNAmtIpKipAf0LS61np
wtq59ssjBG / a4ZXNn32n78DO0i6zVV5vwf8rv2sf
-----SFÂRȘIT RSA Cheie privată -----

mydesktop $ pisică id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAcMJy5nn4ZNcD3L32b7y433Zh2IEAnPt
aIsWf4POIKWR9DXiPgr1aGOTtBTgkqRQm4VBiYoEOlXiiOYKTpQ87aSdUXPipn
2dqjGn7OfyxYA7oy7i9j7 / hYytkyMGx7ROxqD / 2WtzU2SZtjs74s / PjxzyBMsr
ff5M09PsqNypoLLLZas = xahria @ mydesktop

Rețineți că „ssh-rsa ... xahria @ mydesktop“ este o singură linie, mai degrabă decât mai multe.

După cum puteți vedea, ssh-keygen creează două fișiere: id_rsa și id_rsa.pub. În prima cheie privată este stocată într-un fișier protejat de o expresie de acces pe care le introduceți atunci când creați, nimeni să nu ne îngropa în acest fișier. Al doilea fișier - cheia publica, aceasta nu conține secrete, și pot fi accesate prin orice contra-transversală. În caz de pierdere poate fi recuperat din cheia privată.

Tipuri de chei SSH

Când creați cheile ați subliniat opțiunea rsa -t. Acest parametru, vom specifica tipul de cheie pentru a crea. De asemenea, este posibil să se creeze chei rsa1, rsa sau dsa. Luați în considerare diferențele dintre ele:

Puteți schimba numele fișierului folosind opțiunea numele de fișier -f. Dacă nu specificați numele fișierului, cheile vor fi stocate în directorul $ HOME / .ssh / cu numele luate în mod implicit pentru acest tip de cheie.

Rezoluția de identitate / autentificare Pubkey pe server

Odată ce am creat cheile, trebuie să activați tipul de server de autentificare SSH. În primul rând, vom defini tipul de autentificare - Pubkey sau de identitate, setați următoarele în sshd_config:

# Ar trebui să permitem de identitate (SSH versiunea 1) de autentificare?
RSAAuthentication da

# Ar trebui să permitem Pubkey (SSH versiunea 2) de autentificare?
PubkeyAuthentication da

# În cazul în care ne căutăm chei publice autorizate?
# În cazul în care nu începe cu o bară oblică, atunci este
# Relativ la directorul home al utilizatorului
AuthorizedKeysFile .ssh / authorized_keys

Cifrele de mai sus sunt permise autentificării identitate / Pubkey pentru protocolul SSH versiunea 1 și 2, și verificați disponibilitatea unei chei publice în fișierul $ HOME / .ssh / authorized_keys.

Verificați disponibilitatea acestor linii în fișierul de configurare sshd_config (de obicei localizate în directorul / etc / ssh /), adăugați și reporniți serviciul, dacă este necesar.

conținutul authorized_keys fișier

# Acum să vă conectați și să creați fișierul authorized_keys
mydesktop $ ssh ssh-server
parola xahria @ ssh-ul serverului: (introduceti parola)

# Creați dir .ssh în cazul în care nu există deja
ssh-server de $ mkdir .ssh
ssh-server de $ chmod 700 .ssh
ssh-server de $ cd .ssh

# Concatenam RSA Pubkey ne-am încărcat la
# Fișierul authorized_keys. (Acest lucru va crea
# În cazul în care nu există deja.)
ssh-server de $ pisică. /id_rsa_mydesktop.pub >> authorized_keys

# Să verificăm fișierul
ssh-server authorized_keys $ pisică
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAcMJy5nn4ZNcD3L32b7y433Zh2IEAnPt
aIsWf4POIKWR9DXiPgr1aGOTtBTgkqRQm4VBiYoEOlXiiOYKTpQ87aSdUXPipn
2dqjGn7OfyxYA7oy7i9j7 / hYytkyMGx7ROxqD / 2WtzU2SZtjs74s / PjxzyBMsr
ff5M09PsqNypoLLLZas = xahria @ mydesktop

# Asigurați-vă că permisiunile sunt paranoic
ssh-server $ chmod 600 authorized_keys

# Excelent, să vă deconectați.
$ Exit ssh-server

Regulile cu privire la următoarele acțiuni: a copia cheia publică RSA pe server folosind scp sau orice altă metodă. Creați authorized_keys fișier în cazul în care .ssh director nu există - creează. Adăugarea cheia publică RSA în fișierul authorized_keys. Verificați, a seta permisiuni și de ieșire.


[Numele anunțului = »Google Adsense»]

Este timpul pentru a verifica afară. am navayal:

mydesktop $ ssh ssh-server
Introduceți expresia de acces pentru „/home/xahria/.ssh/id_rsa“ cheie:

Clientul dvs. SSH va încerca mai întâi să treacă de autentificare Pubkey / Identitate, în caz de eșec - autentificare prin parolă. El va căuta trei fișiere numite, implicit, dacă nu specificați un fișier cheie în mod clar și să-l la server.

Să considerăm procesul de conectare de separare:

Toate acestea este transparent pentru utilizator. Dacă doriți să urmăriți faza de conectare, apoi utilizați -v-cheie:

mydesktop $ ssh ssh-server
OpenSSH_3.8.1p2, protocoale SSH 1.5 / 2.0, OpenSSL 0x009060cf
.
debug1: tip de fișier de identitate /home/xahria/.ssh/identity 0
debug1: fișier de identitate /home/xahria/.ssh/id_rsa de tip 1
debug1: protocol de la distanță versiunea 1.99, software-ul de la distanță versiunea OpenSSH_3.7.1p2
.
debug1: SSH2_MSG_SERVICE_ACCEPT primite
debug1: autentificări care poate continua: publicKey, parola, tastatură interactivă
debug1: Următoarea metodă de autentificare: publicKey
debug1: Oferirea de chei publice: /home/xahria/.ssh/id_rsa
debug1: Server acceptă cheie: pkalg-ssh rsa blen 149 0x601d0 lastkey indiciu 1
debug1: PEM_read_PrivateKey nu a reușit
debug1: Citirea cheii private PEM făcut: Tip
Introduceți expresia de acces pentru „/home/xahria/.ssh/id_rsa“ cheie: (Introduceți fraza de acces greșit)

debug1: PEM_read_PrivateKey nu a reușit
debug1: Următoarea metodă de autentificare:-tastatură interactivă
debug1: autentificări care poate continua: publicKey, parola, tastatură interactivă
debug1: Următoarea metodă de autentificare: parola
parola xahria @ ssh-ul serverului: (Introduceți parola Unix)

Pentru claritate, în acest exemplu, vom introduce cuvântul cod greșit pentru a decripta cheia privată. Este posibil să observați că s-au găsit identitatea și id_rsa fișiere, deși ele pot fi utilizate numai cu SSHv2.

Alegerea chei

Dacă aveți o cheie pentru fiecare tip, puteți utiliza numele de fișiere și ssh-client standard pe cont propriu și de a găsi utilizările lor, dar se poate întâmpla să utilizați pentru a autentifica fișiere diferite:

Folosit pentru a determina tasta puteți utiliza opțiunile private_key_file AS-i:

mydesktop $ ssh -i

/.ssh/special_ssh_key ssh-server
Introduceți expresia de acces pentru „/home/xahria/.ssh/special_ssh_key“ cheie:

Următoarea opțiune va crea în dvs.

afișare indicație /.ssh/config espolzuemogo cheie:

$ Pisică mydesktop

/.ssh/config
Gazdă ssh-server de
IdentityFile

mydesktop $ ssh ssh-server
Introduceți expresia de acces pentru „/home/xahria/.ssh/special_ssh_key“ cheie:

Vă rugăm să rețineți că variabila de configurare este întotdeauna IdentityFile, utilizate sau Pubkey de identitate.

Securitatea expresia de acces

cheile private pot fi criptate și o frază de acces, deoarece protejează cheia de a fi compromisă. Chiar dacă setați drepturile de acces corespunzătoare, dar nu protejează expresia de acces cheie, fara probleme vor putea admira rădăcină cheie. Deci, nu te jos pe frâne acest caz.

authorized_keys2

Versiunile mai vechi ale OpenSSH folosind două chei publice diferite pentru a avea acces la server - authorized_keys pentru Identități (SSHv1) și authorized_keys2 pentru Pubkeys (SSHv2). Mai târziu, sa decis că este prost și acum folosește un singur fișier pentru toate tipurile de chei, dar fără a tasta corespunzătoare va fi verificată și authorized_keys2. Versiunile ulterioare ale OpenSSH pot opri sprijinirea authorized_keys2 toate.

Să nu se gândească la această limitare, de a crea o legătură greu de authorized_keys2 authorized_keys fișier.

ssh-server de $ cd .ssh
ssh-server $ ls -l
-rw ------- 1 xahria hatchclan 883 Jan 21 11:52 authorized_keys

# Creați un link tare, astfel încât acestea sunt același fișier, doar diferit
Numele # fișiere.
ssh-server de $ ln authorized_keys authorized_keys2

ssh-server $ ls -l
-rw ------- 2 xahria hatchclan 883 Jan 21 11:52 authorized_keys
-rw ------- 2 xahria hatchclan 883 21 ianuarie 11:52 authorized_keys2

Așa că ne satisface nevoile de orice versiune de OpenSSH.


[Numele anunțului = »Google Adsense»]