docs(chei-ssh): procedura de mutare a profilelor pe VM 303/304 si cheile de admin
Sectiunea 7 acopera tot drumul: ce contine de fapt fiecare profil (parola in fisier, keypair de profil, keypair global — se afla cu -noRegistry=y, fara GUI), folderul de pregatire, conversia la publickey cu -storePw=n / -pk=a, verificarea care prinde un Ctrl+S uitat, si importul cheii pe VM 303. Include lista celor 11 profile cu numele scurtate la copiere si serverul fiecaruia. Sectiunea 6 tine acum toate cele 5 chei publice (doi angajati, trei ale statiei de birou) si tabelul pe servere, verificat pe amprenta, nu pe comentariu. Capcane platite pe drum, notate ca atare: - stergerea keypair-urilor GLOBALE din User keypair manager lasa fara credentiala orice profil care se baza pe ele — asa a ramas mut romfast_bitvise.tlp; - vadeco.tlp avea cheia privata salvata in profil, deci s-ar fi dus cu fisierul; - abcval (Bitvise 9.32) respinge Ed25519, acolo intra doar RSA; - conpress blocheaza IP-ul la conexiuni repetate: se exclude in Access control, nu doar se sterge din lista de blocati. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FnMP82sffxQYxWRjy5sfKo
This commit is contained in:
@@ -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
|
||||
|
||||
1
docs/chei-publice/marius-hx90g.pub
Normal file
1
docs/chei-publice/marius-hx90g.pub
Normal file
@@ -0,0 +1 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/AOH3Q5xDKnCjAs3c2VGP5PTRGvgAfnW/8xrcVtBJc marius@Marius-HX90G
|
||||
1
docs/chei-publice/marius-lenovo-birou-rsa.pub
Normal file
1
docs/chei-publice/marius-lenovo-birou-rsa.pub
Normal file
@@ -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
|
||||
1
docs/chei-publice/marius-lenovo-birou.pub
Normal file
1
docs/chei-publice/marius-lenovo-birou.pub
Normal file
@@ -0,0 +1 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKZrP2TJDrt6bkwADP/Wh3m2Id9Fpqf6a8Zf3UEvOLrR mmarius28@gmail.com
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user