Puncte:0

Autentificare SSH pe bază de cheie publică fără copiere/lipire

drapel cn

Vreau să elimin procesul de copiere manuală a cheilor publice pe fiecare dintre servere pentru acordarea accesului.

Problema principală pe care încerc să o rezolv aici este:

  • Există mai multe servere pe mai mulți furnizori de cloud.
  • Ori de câte ori o persoană nouă se alătură echipei, trebuie să îi copiem cheile publice pe toate serverele, astfel încât să se poată conecta.
  • Acest proces este repetitiv și greoi și am vrut să elimin această parte copy-paste cu un fel de mecanism de autentificare personalizat.

M-am uitat la:

  • Autentificare ssh bazată pe autentificare Google

    • Acest lucru necesită configurarea mediului pe toate serverele, astfel încât să poată funcționa, ceea ce este bine, dar toate serverele vor avea propriile chei și utilizatorii vor trebui să se înregistreze pe toate serverele unul câte unul.
    • De asemenea, vor exista mai multe TOTP-uri prezente în aplicația Google Authenticator, câte unul pentru fiecare server, care pot provoca confuzie și această experiență nu arată bine.
    • Dacă partea de potrivire a jetonului poate fi cumva descărcată pe un server central și serverele ssh trebuie doar să transmită jetonul acelui server, atunci această metodă poate funcționa.
  • Am văzut asta cu serverele Azure: pentru un server Azure, dacă autentificarea bazată pe Azure este activată, atunci ori de câte ori un utilizator încearcă să se conecteze la un server (după ce a executat comanda ssh în terminal), se deschide un browser și utilizatorul i se cere să introducă acolo e-mailul și parola și, în cazul autentificării cu succes, li se oferă un token. Utilizatorul trebuie să introducă apoi jetonul în terminal pentru a accesa serverul.

    • Încerc să aflu cum se numește această tehnologie și dacă există o versiune gratuită?
  • Crearea unui utilizator Linux cu o parolă și apoi partajarea numelui de utilizator/parola întregii echipe, astfel încât să le poată folosi. Acesta poate fi apoi partajat pe Lastpass cu numele de utilizator și IP. Această abordare nu ajută la audit, dar poate funcționa și am păstrat-o ca ultimă soluție.

Mulțumiri!

Puncte:1
drapel us
  1. Bună ziua, dacă am înțeles problema dvs., cred că poate fi rezolvată prin crearea unui script simplu folosind copia securizată a fișierului OpenSSH scp comanda.

  2. Dacă toată echipa are nevoie de aceleași permisiuni pentru aceleași servere, atunci recomandarea mea este:

    • creați un fișier authorized_keys în propriul computer.
    • actualizați manual acel fișier de către echipele necesare. (poate folosi un script pentru cei doi).
  3. Creați un script pentru a copia automat cheile_autorizate actualizate de pe computer pe servere:

    • scp are nevoie de permisiuni pentru servere pentru a funcționa, de aceea scriptul ar trebui să ruleze de pe computerul dvs. sau de pe orice alt manager.
  4. Găsiți scriptul în /usr/local/sbin/. pe mașina dvs., pentru opțiunea de a rula scriptul din orice director de pe computer.

  5. Dați script-ului permisiuni de execuție prin comandă chmod a+x /usr/local/sbin/scriptName.

    • Scenariul:
#/bin/bash!

citiți -p „Vă rugăm să introduceți calea:” -r r1

scp $r1 nume utilizator@serverip:/home/nume utilizator/.ssh/authorized_keys
#scp $r1 nume utilizator@serverip:/home/nume utilizator/.ssh/authorized_keys
#scp $r1 nume utilizator@serverip:/home/nume utilizator/.ssh/authorized_keys
#adăugați mai multe servere dacă este necesar....
#poți folosi, de asemenea, un comutator pentru a folosi care servere sunt relevante pentru noul utilizator.

Rețineți că, dacă rulați serviciul ssh pe alte porturi din motive de securitate sau din alte motive, ar trebui să rulați scp comanda cu -P opțiune.

scp -P sshPort $r1 username@serverip:/home/username/.ssh/authorized_keys.

Exemplu de imagine a scriptului care rulează pe propriul meu server: introduceți descrierea imaginii aici

  1. După cum am spus înainte, puteți îmbunătăți scriptul și puteți adăuga câteva filtre prin „comutați” pentru a alege la ce servere doriți să adăugați cheile.
  2. Dacă situația este simplă, așa cum ați spus și fiecare membru al echipei care se alătură are nevoie de permisiuni pentru toate serverele, această soluție ar trebui să funcționeze.

Sper că te va ajuta, prietene.

Vă rugăm să comentați dacă ceva nu este înțeles sau aveți nevoie de mai mult ajutor în acest caz.

Pallav Jha avatar
drapel cn
Bună @CrazyTux - Mulțumesc pentru răspuns. În prezent, caut o modalitate de a decupla logica de autentificare ssh cu baza de utilizatori, astfel încât pașii precum copierea/lipirea sau transferul cheilor să fie eliminați. În prezent, mă uit la autentificarea bazată pe LDAP, astfel încât, odată ce contul utilizatorului este creat acolo, toate serverele îl vor folosi pentru autentificare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.