diff --git a/docs/acces-ssh-chei-angajati.md b/docs/acces-ssh-chei-angajati.md index a63da4e..2ccec63 100644 --- a/docs/acces-ssh-chei-angajati.md +++ b/docs/acces-ssh-chei-angajati.md @@ -189,6 +189,8 @@ debifeaza/sterge **parola salvata**, seteaza publickey + keypair-ul angajatului. ramane din copie (fara prompt de verificare). Avantaj: niciun transfer de fingerprint; risc: daca uiți sa stergi parola, o livrez odata cu profilul — de aceea e doar alternativa. +Pentru toate profilele deodata, cu verificare care prinde parola uitata: **sectiunea 7**. + ### Scripturi neinteractive (comun ambelor variante) Daca angajatul va rula si scripturi neinteractive (ca in `docs/diagnostic-spatiu-clienti.md`): @@ -245,8 +247,11 @@ ssh-keygen -lf docs\chei-publice\vm304.pub # amprenta, pentru corelare cu logu | Fisier | Amprenta SHA-256 | Cine | |---|---|---| -| `docs/chei-publice/vm303.pub` | `BDidUbM24Do2ySosEeVuP9wYSRo2+soOg4UhlNcUzTQ` | `romfast@VM-303` | -| `docs/chei-publice/vm304.pub` | `g1HHsnnqmbwEas7SFJuaUDcQLdsZKwNTklSXZO2mbLw` | `romfast@VM-304` | +| `docs/chei-publice/vm303.pub` | `BDidUbM24Do2ySosEeVuP9wYSRo2+soOg4UhlNcUzTQ` | angajat, `romfast@VM-303` | +| `docs/chei-publice/vm304.pub` | `g1HHsnnqmbwEas7SFJuaUDcQLdsZKwNTklSXZO2mbLw` | angajat, `romfast@VM-304` (clona lui 303) | +| `docs/chei-publice/marius-lenovo-birou.pub` | `Rp4QdhbGw1G7eNY4T66VAeRSMbb8kMgdWExvOCwn7Wg` | admin, statia de birou (`C:\Users\mmari\.ssh\id_ed25519`) | +| `docs/chei-publice/marius-lenovo-birou-rsa.pub` | `3LTMHACTsF21CfoHwG6oHlmNgynoOl43zPGz1exe87w` | admin, aceeasi statie — RSA 4096, doar pentru serverele care refuza Ed25519 | +| `docs/chei-publice/marius-hx90g.pub` | `XxLBMaYY0BhhOnYnIsnboLEswEGDoRic+0ZGDIuJo6Q` | admin, `marius@Marius-HX90G` | VM 304 e clona lui VM 303, deci a pornit cu **aceeasi** cheie privata; a fost regenerata pe VM 304 (`ssh-keygen -t ed25519 -C "romfast@VM-304"`, plus stergerea keypair-ului mostenit din @@ -257,29 +262,33 @@ identitatea VM 303 si nu se vede diferenta in loguri. ### Serverele pe care sunt copiate cheile Lista traieste in `scripts/bitvise-chei.ps1` (variabila `$Servere`) — se actualizeaza acolo, -nu aici, ca sa nu existe doua adevaruri. +nu aici, ca sa nu existe doua adevaruri. Tabelul de mai jos e starea verificata la 2026-09-01 +cu `-Actiune List` (comparatie pe amprenta, nu pe comentariu — comentariile se repeta). -| Server (profil din `D:\GoogleDrive`) | VM-303 | VM-304 | -|---|---|---| -| `automotive.tlp` | da | da | -| `avis.tlp` | da | da | -| `clever-motors.tlp` | da | da | -| `conpress_romfast.tlp` | da | da | -| `eduard.tlp` | da | da | -| `ems.tlp` | da | da | -| `romconstruct.bscp` | da | da | -| `romfast_bitvise.tlp` = **10.0.20.36:22122** (Oracle productie) | da | da | -| `sigma.tlp` | da | da | -| `vadeco.tlp` | da | da | -| `vending.tlp` | da | da | -| `abcval.tlp` | **nu** | **nu** | +| Server (profil din `D:\GoogleDrive`) | VM-303 | VM-304 | birou Ed | birou RSA | HX90G | +|---|---|---|---|---|---| +| `automotive.tlp` | da | da | da | — | da | +| `avis.tlp` | da | da | da | — | da | +| `clever-motors.tlp` | da | da | da | — | da | +| `conpress_romfast.tlp` | da | da | da | — | da | +| `eduard.tlp` | da | da | da | — | da | +| `ems.tlp` | da | da | da | — | da | +| `romconstruct.bscp` | da | da | da | — | da | +| `sigma.tlp` | da | da | da | — | da | +| `vadeco.tlp` | da | da | da | — | da | +| `vending.tlp` | da | da | da | — | da | +| `10.0.20.36:22122` (Oracle productie) | da | da | da | — | da | +| `abcval.tlp` | nu | nu | nu | **da** | nu | -`romfast_bitvise.tlp` si intrarea `10.0.20.36` sunt **acelasi server** (liste de chei identice) — -a doua e pastrata ca ruta de rezerva, fiindca parola din `bitvise_10.0.20.36.bscp` a expirat si -ruta aceea se conecteaza cu `-keypairFile` in loc de parola. +`abcval` ruleaza Bitvise SSH Server 9.32 si respinge Ed25519 cu `KeyNotSupported` — pe el intra +doar chei RSA. De aceea coloana "birou RSA" exista: e aceeasi statie, alta pereche de chei. +Un angajat care are nevoie de `abcval` isi genereaza in paralel o pereche RSA 3072/4096. -`abcval` ruleaza Bitvise SSH Server 9.32 si respinge Ed25519 cu `KeyNotSupported`. Daca un -angajat chiar are nevoie de el, genereaza o pereche RSA 3072/4096 in paralel si urca **acel** `.pub`. +`romfast_bitvise.tlp` (`roadigi.romfast.ro:22122` = `188.26.14.103`) si `10.0.20.36:22122` sunt +**acelasi server**, vazut din exterior si din reteaua interna — listele de chei sunt identice. +Profilul extern **nu mai autentifica neinteractiv** (`Attempting none authentication` → nicio +metoda disponibila, deci nici parola stocata, nici keypair global valid); pana se repara din GUI, +ruta interna `10.0.20.36` este cea care functioneaza, si e cea din script. Restul profilelor din `D:\GoogleDrive` sunt clienti expirati (timeout / conexiune refuzata) sau servere Linux/OpenSSH, unde SPKS nu exista (`cod 201: Failed to request PublicKey subsystem`) — @@ -304,6 +313,139 @@ server picat iese cu un cod de retur, nu cu o fereastra care asteapta. Coduri ut Un `Remove` care raporteaza "cheie inexistenta" pe un server unde cheia chiar era inseamna ca te-ai conectat pe alt cont decat cel pe care a fost adaugata. +## 7. Mutarea profilelor mele pe VM 303, convertite la publickey + +Profilele mele de client se conecteaza cu **parola salvata in fisier**. Copiate ca atare pe VM +303, angajatul primeste parolele tuturor clientilor. Conversia la publickey se face pe **copii**, +nu pe profilele de lucru. + +De ce merita copiate in loc de reconstruite de la zero: **host key-ul calatoreste in profil** +(verificat pe toate cele 11 cu `-noRegistry=y` — niciun "host key rejected"), deci angajatul nu +mai are de verificat manual cate un fingerprint per client. + +### Ce contine de fapt fiecare profil + +Se afla fara sa deschizi nimic in GUI, ruland comanda cu `-noRegistry=y` (blocheaza registry-ul, +deci ce reuseste vine din fisier): + +```powershell +$spksc = 'C:\Program Files (x86)\Bitvise SSH Client\spksc.exe' +foreach ($f in Get-ChildItem 'D:\vm303-profile') { + $o = & $spksc "-profile=$($f.FullName)" -noRegistry=y -unat=y -initialKexTimeout=20 "-cmd=List Server" 2>&1 | Out-String + '{0,-24} {1}' -f $f.Name, (($o -split "`n" | Select-String 'Attempting|Signing with client key' | Select-Object -First 2) -join ' / ') +} +``` + +Starea la 2026-09-01, inainte de conversie: + +- 9 profile → `Attempting password authentication` = **parola in fisier, portabila** (nu e legata + de contul meu Windows, deci pleaca odata cu fisierul); +- `vadeco.tlp` → `Signing with client key 'Profile 1'` = **cheie privata Ed25519 salvata in + profil**. Copiat asa, angajatul primeste cheia mea privata — singurul lucru din procedura care + chiar are consecinte; +- `romfast_bitvise.tlp` → nimic. Initial am citit asta ca "foloseste o cheie globala din + registry", dar verificarea ulterioara (`-pk=a`, care ar incerca orice cheie globala) arata + `Attempting none authentication` si apoi nicio metoda: profilul **nu are nicio credentiala + utilizabila**. Nu e gata de copiat — trebuie deschis in GUI si reparat inainte, altfel + angajatul primeste un profil care doar cere parola. + +### Pasul 1 — folderul de pregatire + +```powershell +$dest = 'D:\vm303-profile' +New-Item -ItemType Directory -Force $dest | Out-Null +'automotive.tlp','avis.tlp','clever-motors.tlp','conpress_romfast.tlp','eduard.tlp', +'ems.tlp','romconstruct.bscp','romfast_bitvise.tlp','sigma.tlp','vadeco.tlp','vending.tlp' | + ForEach-Object { Copy-Item "D:\GoogleDrive\$_" $dest -Force } +``` + +Folderul e **in afara** lui `D:\GoogleDrive` intentionat: pana la pasul 2 copiile inca au parolele +inauntru si n-au ce cauta in sincronizarea cu cloud-ul. + +Lipsesc din lista, cu motiv: `abcval.tlp` (Bitvise 9.32, respinge Ed25519) si +`bitvise_10.0.20.36.bscp` (acelasi server cu `romfast_bitvise.tlp`, cu parola expirata). + + +### Lista profilelor pregatite, cu numele scurte + +Numele au fost scurtate la copiere; astea sunt fisierele care pleaca pe VM 303 / VM 304 (pe VM +304 stau in `D:\roa\BITVISE\`). Coloana "server" e citita din fisier, fara conectare. + +| Fisier (copie) | Original din `D:\GoogleDrive` | Server | Utilizator | +|---|---|---|---| +| `automotive.tlp` | `automotive.tlp` | `78.96.115.213:22122` | `automotive` | +| `avis.tlp` | `avis.tlp` | `86.124.94.107` | `romfast` | +| `clever.tlp` | `clever-motors.tlp` | `clever-motors.go.ro` | `romfast` | +| `conpress.tlp` | `conpress_romfast.tlp` | `185.132.173.105:22322` | `romfast` | +| `eduard.tlp` | `eduard.tlp` | `extra.edituraeduard.ro` | `romfast` | +| `ems.tlp` | `ems.tlp` | `185.132.173.240` | `romfast` | +| `romconstruct.bscp` | `romconstruct.bscp` | `82.76.217.177` | `romfast` | +| `romfast.tlp` | `romfast_bitvise.tlp` | `roadigi.romfast.ro:22122` | `romfast` | +| `sigma.tlp` | `sigma.tlp` | `82.137.26.46` | `romfast` | +| `vadeco.tlp` | `vadeco.tlp` | `100.93.100.75` (Tailscale) | `romfast` | +| `vending.tlp` | `vending.tlp` | `79.119.86.134` | `romfast` | + +Trei fisiere au fost redenumite: `clever-motors` → `clever`, `conpress_romfast` → `conpress`, +`romfast_bitvise` → `romfast`. Restul si-au pastrat numele. `romfast.tlp` merge pe copie (a fost +reparat acolo), desi originalul din `D:\GoogleDrive` a ramas fara credentiala. + +### Pasul 2 — conversia (GUI, obligatoriu manual) + +`-storePw=n` scoate parola, `-pk=a` pune metoda initiala pe publickey cu "orice cheie accepta +serverul" — asa profilul nu depinde de pozitia cheii in managerul angajatului. Ambele sunt +*profile modifications*: se aplica la incarcare, dar **Bitvise nu salveaza profilul din linia de +comanda** ("it will not be saved unless the user manually saves it"), deci Ctrl+S e al tau. + +```powershell +Get-ChildItem 'D:\vm303-profile' | ForEach-Object { + Start-Process -Wait 'C:\Program Files (x86)\Bitvise SSH Client\BvSsh.exe' ` + -ArgumentList "-profile=$($_.FullName)", '-storePw=n', '-pk=a' +} +``` + +In fiecare fereastra: **Ctrl+S**, apoi inchizi — `-Wait` face bucla sa treaca la urmatorul. + +La **`vadeco.tlp`**, inainte de Ctrl+S: Login → **User keypair manager** → scope **Profile** → +sterge keypair-ul de acolo. + +### Pasul 3 — verificarea, inainte sa plece ceva spre VM 303 + +Aceeasi comanda ca la inceputul sectiunii. Dupa conversie, pe **niciun** profil nu mai are voie +sa apara `Attempting password authentication` sau `Signing with client key 'Profile 1'`. Daca +apar, Ctrl+S nu s-a facut pe acel profil — verificarea e singurul lucru care prinde asta, fiindca +fereastra inchisa fara salvare nu da niciun semnal. + + +Stare la 2026-09-01, dupa conversie: cele 11 copii nu mai incearca nicio metoda pe cont propriu +(parola scoasa, keypair de profil sters la `vadeco`), host key-ul e in continuare in fisier +(`hostkey_prompt=0`), iar cu o cheie furnizata explicit — `-keypairFile=...`, exact ce va face +managerul de keypair-uri al angajatului — **10 din 11 se autentifica**. Al 11-lea, `conpress`, +nu e o problema de profil: si originalul, si copia primesc EOF de la `185.132.173.105:22322`, +adica serverul ne blocheaza temporar IP-ul dupa conexiunile de azi. Se reia mai tarziu. + +Atentie la un efect secundar: stergerea keypair-urilor **globale** din User keypair manager (utila +ca sa nu plece cheia mea cu profilele) lasa fara credentiala orice profil care se baza pe ele — +in cazul nostru originalul `romfast_bitvise.tlp`. Se repara importand cheia la loc, sau se +foloseste ruta interna `10.0.20.36:22122` catre acelasi server. + +### Pasul 4 — pe VM 303 + +1. Copiezi folderul (ex. in `C:\profile`). +2. BvSsh → Login → **User keypair manager** → **Import** `C:\Users\romfast\.ssh\id_ed25519`, + scope **Global**. +3. Test per client — trebuie `Attempting publickey authentication` + `Authentication completed`: + +```powershell +& 'C:\Program Files (x86)\Bitvise SSH Client\spksc.exe' -profile=C:\profile\ems.tlp -unat=y -cmd="List Server" +``` + +### Ce nu rezolva conversia + +Stergerea parolei din profil **nu revoca nimic** — parola contului ramane valida pe serverul +clientului si oricine o stie intra in continuare. Daca angajatul nu trebuie sa poata intra cu +parola deloc, parola se schimba pe server sau se dezactiveaza metoda `password` pe cont +(Control Panel → intrarea contului/grupului → Authentication). + ## Capcane - Cheia privata nu se primeste niciodata "in avans" de la angajat ca backup — daca se pierde, se diff --git a/docs/chei-publice/marius-hx90g.pub b/docs/chei-publice/marius-hx90g.pub new file mode 100644 index 0000000..abcdb58 --- /dev/null +++ b/docs/chei-publice/marius-hx90g.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/AOH3Q5xDKnCjAs3c2VGP5PTRGvgAfnW/8xrcVtBJc marius@Marius-HX90G diff --git a/docs/chei-publice/marius-lenovo-birou-rsa.pub b/docs/chei-publice/marius-lenovo-birou-rsa.pub new file mode 100644 index 0000000..98ebefc --- /dev/null +++ b/docs/chei-publice/marius-lenovo-birou-rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC88mX/oQnAoU54kazp6iYmmg91IR8pbnYV3aw5aJfSsiSBUjqo+XbvrWRvq//lli48k2kuNfq8olKrPvqKHcIccbcbgFrES5k2ErSyXjvbUlxuyHFRIfBoXvAhMMX6LZR+4Qc0i3VThQ1PgY0tYDbf2XQBAyrog5EU9H/q2NzJEulTs7kSR0FIt1goWXqKJYLA9Pn7Ardt7doPzR8EH/spB8hXctO0BaAorX3p3rd4bvOZoOcht4pTmyJBRzoZRRlscCZRCOxjQDk+y4v9eOPzwMc0dRlVxIbqt8Sua5khGTlmeQTmDqxCmdtgrTNWT4hwPVG1L4Jfw2bgX3IqCGKB4juDUF+Eh6hrQeuTIF7xbCIGGy9N/lKIKO3vr4sTf51gVM9CWJ0bE/CTKbiRPfWbUXIUA4yZ96gJf0QAqcIcutnntomdtkdV8G1RYVKSQEE4oxF3mCRxR+1d5Fn/UXGlms9Q2u/QAq7n5BYLPczUFSkdBdfITOqiCIzlX8WpPD7v/vt8Wsbyf24B/FSYvp+X0AcX5qQbNeljChAxqRy6VNhmh5ucUkMFxfUSTWij+AVqmCPvxVVFKPw32G6jN59BmwirmIxd0i6wTRj3rrUuyO/6+kjErjthkYKFIDBAgdCnV0rrkrPRNKmbS0DtgRcID3ILq2UqR3AYmDf2azf8hQ== mmarius28@gmail.com diff --git a/docs/chei-publice/marius-lenovo-birou.pub b/docs/chei-publice/marius-lenovo-birou.pub new file mode 100644 index 0000000..66549b6 --- /dev/null +++ b/docs/chei-publice/marius-lenovo-birou.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKZrP2TJDrt6bkwADP/Wh3m2Id9Fpqf6a8Zf3UEvOLrR mmarius28@gmail.com diff --git a/scripts/bitvise-chei.ps1 b/scripts/bitvise-chei.ps1 index 837c74a..a916b5c 100644 --- a/scripts/bitvise-chei.ps1 +++ b/scripts/bitvise-chei.ps1 @@ -32,11 +32,17 @@ $Servere = @( @{ N='eduard'; A=@('-profile=D:\GoogleDrive\eduard.tlp') } @{ N='ems'; A=@('-profile=D:\GoogleDrive\ems.tlp') } @{ N='romconstruct'; A=@('-profile=D:\GoogleDrive\romconstruct.bscp') } + # romfast_bitvise = roadigi.romfast.ro:22122 (188.26.14.103), ruta externa catre ACELASI + # server ca 10.0.20.36 de mai jos. Din 2026-09-01 nu mai autentifica neinteractiv: era + # singurul profil care folosea un keypair GLOBAL, iar keypair-urile globale au fost sterse + # din User keypair manager. Pana se importa cheia la loc, intrarea 10.0.20.36 e cea care + # duce cheile pe acest server. @{ N='romfast_bitvise'; A=@('-profile=D:\GoogleDrive\romfast_bitvise.tlp') } @{ N='sigma'; A=@('-profile=D:\GoogleDrive\sigma.tlp') } @{ N='vadeco'; A=@('-profile=D:\GoogleDrive\vadeco.tlp') } @{ N='vending'; A=@('-profile=D:\GoogleDrive\vending.tlp') } - # abcval: Bitvise 9.32, refuza Ed25519 (KeyNotSupported) — doar cu cheie RSA + # abcval: Bitvise 9.32, refuza Ed25519 (KeyNotSupported) — pe el se ruleaza separat, cu un + # .pub RSA (ex. docs\chei-publice\marius-lenovo-birou-rsa.pub) @{ N='abcval'; A=@('-profile=D:\GoogleDrive\abcval.tlp') } # Oracle prod = ACELASI server ca romfast_bitvise.tlp (verificat: liste de chei identice). # Ramane in lista ca ruta de rezerva: parola din profil e expirata, deci host/port/user