Files
ROMFASTSQL/docs/acces-statie-birou-de-la-distanta.md
Claude Agent 0ac1cdd45f docs: acces de la distanta la statia de birou (WOL + SSH) spre tunel Oracle client
Documenteaza pasul lipsa fata de diagnostic-spatiu-clienti.md sectiunea 6: cum ajunge
agentul de pe LXC 171 pe statia de birou (WOL pe acelasi L2, apoi SSH ca mmari), plus
capcana job object-ului Windows care omoara tunelul stnlc daca nu ruleaza in aceeasi
sesiune SSH cu sqlplus. Prima aplicare: PACK_CONTAFIN la ROMCONSTRUCT, 2026-09-10.

Co-Authored-By: Claude Agent <noreply@anthropic.com>
2026-09-10 08:54:39 +00:00

3.4 KiB

Acces de la distanță la stația de birou (și, prin ea, la Oracle-ul clienților)

De ce: agentul Claude (LXC 171) poate trezi și accesa stația de birou a lui Marius (LENOVO-AIO-BIROU) fără nimeni prezent fizic, ca să ruleze operații care altfel ar cere GUI-ul Bitvise de acolo (ex. aplicarea unui pachet Oracle la un client). Prima aplicare: PACK_CONTAFIN la ROMCONSTRUCT, 2026-09-10.

Nu duplică diagnostic-spatiu-clienti.md §6 (tunelul Bitvise + sqlplus către un client) — doar adaugă pasul de dinainte: cum ajungi de pe LXC 171 pe stația de birou, ca să rulezi de acolo procedura deja documentată.

1. Trezire (Wake-on-LAN)

Stația (10.0.20.144, Tailscale: lenovo-aio-birou / 100.86.46.43) e pe aceeași rețea L2 ca LXC 171 (10.0.20.0/24) — nu e nevoie de aplicația Wake-on-LAN de pe Portainer (100.80.138.86:5004), un magic packet trimis direct pe broadcast ajunge la fel de bine:

import socket
mac = 'e4a8df972e5c'  # LENOVO-AIO-BIROU
data = b'\xff'*6 + bytes.fromhex(mac)*16
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto(data, ('10.0.20.255', 9))

MAC-ul poate fi recitit din cache-ul ARP local dacă lipsește: ip neigh show 10.0.20.144 (rămâne populat chiar cu mașina oprită, din trafic anterior). Boot complet: ~15-20s până răspunde la ping.

2. SSH către stație

User Windows: mmari (OpenSSH nativ Windows, port 22 — nu Bitvise). Cheia publică a agentului e autorizată în C:\Users\mmari\.ssh\authorized_keys:

ssh -i ~/.ssh/id_ed25519 mmari@10.0.20.144

Cheia: docs/chei-publice/claude-agent-lxc171.pub (SHA256:5D7y0lTqWKf6e2agUK0Nol+duxoipPYb3y6Rhk4nXtw). Shell-ul e PowerShell, nu bash — ; în loc de &&/& ca separator de comenzi.

3. De acolo: tunel Oracle către un client

Exact procedura din diagnostic-spatiu-clienti.md §6 (profil .tlp/.bscp din D:\GoogleDrive, stnlc.exe, sqlplus.exe) — regula de acolo rămâne valabilă: tunelul spre un client e strict read-only, în afara cazului în care chiar scopul e o scriere controlată (aplicare pachet), cu backup luat înainte (DBMS_METADATA.GET_DDL).

Capcană nouă, specifică rulării prin SSH (nu apare cu sesiune interactivă la consolă): OpenSSH pe Windows pune procesele pornite într-o sesiune într-un job object; când sesiunea SSH se închide, Windows omoară și copiii ei — inclusiv stnlc.exe pornit cu Start-Process în fundal. Tunelul moare la finalul comenzii SSH care l-a pornit, chiar dacă procesul pare detașat.

Soluție: pornire tunel + sqlplus (backup, apply, verify) în același script, aceeași sesiune SSH — nu în comenzi SSH separate. Vezi orchestrarea completă (tunel → backup DDL → apply → verify → stop tunel) în istoricul conversației Discord din 2026-09-10; nu e salvată ca script reutilizabil momentan (de scris în tools/ dacă mai apare nevoia).

Legături

  • docs/acces-ssh-chei-angajati.md — cheile de pe stația de birou folosite ca să te autentifici către clienți (invers față de acest document, care e acces către stație).
  • docs/diagnostic-spatiu-clienti.md §6 — tunelul Bitvise + sqlplus, regula read-only.
  • docs/acces-client-tailscale-ssh.md — alternativa fără Bitvise, pentru servere de client cu Tailscale + SSH direct (nu implică stația de birou).