Bună seara,
În prezent, încerc să-mi aprofundez mâna mai mult în Linux, cu care sunt familiarizat.
Să trecem direct la problema mea:
În primul rând, să vorbim despre configurația mea.
Am 3 servere, fiecare având un IP public.
Fiecare server face parte dintr-un VLAN.
Serverul #1 (vlan 10.0.0.2) nu este protejat de un firewall.
Serverul #2 (vlan 10.0.0.3) și Serverul #3 (vlan 10.0.0.4) sunt complet blocate de pe internet și pot fi accesate numai din vlan.
Serverul #2 rulează un container KeyCloak. Cu toate acestea, acest lucru este irelevant pentru problemă.
Serverul #3 ar trebui să servească drept serverul meu git.
În mod normal, aș crea doar un git
utilizator, link-ul chei_autorizate
dosar cu cel al meu GitLab
recipient. Fiecare cheie publică ar fi prefixată cu o comandă, care ar trece apoi conexiunea către deamonul ssh din interiorul containerului.
Dar, deoarece Serverul #3 nu este accesibil public, trebuie să accept conexiunea ssh de intrare pe Serverul #1.
Am creat un git
utilizator și am început să mă gândesc cum pot depăși această problemă.
M-am gândit la două moduri în care aș putea face față.
- Permite
git
utilizator pentru a fi accesat fără parolă și pentru a deschide o conexiune la [email protected]
(funcționează? Funcționează clientul ssh-agent în acest caz? Ar putea un atacator să iasă din conexiunea ssh internă și să facă lucruri pe Serverul #1?)
- Serverul #3 se conectează regulat la Serverul #1 și actualizează
chei_autorizate
fișier (atunci ar trebui să scriu un al doilea script la comanda
locație, care ar deschide apoi conexiunea către Serverul #3
. Acest lucru ar fi mai lent, deoarece utilizatorul trebuie să aștepte până când Serverul #3 se sincronizează cu Serverul #1)