# Conectarea prin SSH

Serverul dumneavoastră VPS Pro se deschide cu **cheia SSH**: o pereche de fișiere creată pe calculatorul dumneavoastră, a cărei parte **publică** o salvați în zona de client. Partea **privată** rămâne pe calculatorul dumneavoastră și nu se transmite nimănui, nici echipei noastre.

## Crearea cheii

Pe macOS, Linux și Windows 10 sau 11 (PowerShell sau Terminal), o singură comandă:

```
ssh-keygen -t ed25519
```

Acceptați locația propusă și alegeți o frază de acces pentru a proteja cheia. În dosarul `.ssh` al contului dumneavoastră apar două fișiere:

* `id_ed25519`: cheia dumneavoastră **privată**, care rămâne la dumneavoastră;
* `id_ed25519.pub`: cheia dumneavoastră **publică**, cea pe care o salvați. Încape pe un singur rând, care începe cu `ssh-ed25519`.

Pentru a afișa cheia publică și a o copia:

```
cat ~/.ssh/id_ed25519.pub
```

## Salvarea cheii în zona de client

1. Deschideți [my.simafri.com](https://my.simafri.com/), secțiunea **VPS**.
2. În caseta serverului, lipiți cheia publică în **Cheile dumneavoastră publice, câte una pe rând**.
3. Apăsați **Salvați cheile**.

Cheia este instalată pe server în cel mult un minut, iar caseta indică acest lucru: **Instalate pe server la** urmat de dată, cu amprenta fiecărei chei (`SHA256:...`, aceeași cu cea afișată de `ssh-keygen -lf ~/.ssh/id_ed25519.pub`). Dacă o salvați în timpul pregătirii serverului, cheia este instalată la crearea lui.

Bine de știut:

* până la **10 chei** pe server, câte una pentru fiecare persoană sau calculator;
* tipuri acceptate: **ed25519**, **RSA** de cel puțin 2048 de biți, **ECDSA**, precum și cheile de securitate hardware (`sk-ssh-ed25519`, `sk-ecdsa`); formatul PuTTYgen este de asemenea acceptat;
* fiecare salvare **înlocuiește** toate cheile salvate: lipiți toate cheile pe care doriți să le păstrați;
* proprietarul contului și **administratorii** salvează cheile; un **operator** le consultă (vedeți [Membri și roluri](https://docs.simafri.com/ro/espace-client/membres-et-roles/)).

Cheile salvate din zona de client ocupă propriul bloc în fișierul `/root/.ssh/authorized_keys`, între două rânduri de reper `my.simafri.com`. Restul fișierului vă aparține: o cheie pe care o adăugați chiar dumneavoastră, în afara acestui bloc, rămâne pe loc.

## Conectarea

Caseta serverului afișează comanda **Conexiune SSH**, gata de copiat:

```
ssh -p 22101 root@203.0.113.10
```

Portul, între 22100 și 22999, este propriu serverului dumneavoastră: folosiți-l pe cel din casetă. Numele serverului funcționează și în locul adresei:

```
ssh -p 22101 root@app.firma-mea.ro
```

Pentru un server al cărui nume se află sub propriul domeniu, acest nume răspunde de îndată ce înregistrarea DNS desemnează serverul dumneavoastră (vedeți [Punerea online a unui site sau a unei aplicații](/ro/vps-pro/mettre-en-ligne.md)).

### Prin IPv6

Dacă conexiunea dumneavoastră la internet are IPv6, puteți ajunge la server și direct prin adresa sa IPv6, afișată în casetă, pe portul SSH obișnuit:

```
ssh root@2001:db8::101
```

### O scurtătură: fișierul \~/.ssh/config

Pentru a nu mai tasta portul și adresa, adăugați un bloc în fișierul `~/.ssh/config`:

```
Host vpsul-meu

    HostName app.firma-mea.ro

    Port 22101

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Apoi este suficient `ssh vpsul-meu`, iar aceeași scurtătură servește pentru `scp`, `rsync`, `git` și editorul dumneavoastră.

## Din Windows

Windows 10 și 11 includ clientul OpenSSH: deschideți PowerShell sau Terminal și lipiți comanda din casetă. Fișierul de scurtături se află în `C:\Users\<numele dumneavoastră>\.ssh\config`.

Cu **PuTTY**, introduceți adresa și portul din casetă în **Session**, utilizatorul `root` în **Connection > Data** și cheia privată în format `.ppk` în **Connection > SSH > Auth > Credentials**. Cheia publică afișată de PuTTYgen se salvează ca atare în zona de client.

## Transferul de fișiere

Cu același port și aceeași cheie:

```
# un fișier, către server

scp -P 22101 archive.tar.gz root@app.firma-mea.ro:/srv/



# un dosar, sincronizat

rsync -avz -e "ssh -p 22101" ./build/ root@app.firma-mea.ro:/var/www/app/
```

`scp` primește portul cu **P majusculă**. Programele SFTP precum FileZilla sau WinSCP se conectează prin **SFTP**, cu adresa, portul și cheia privată de pe calculatorul dumneavoastră.

## Lucrul din editor

Extensia **Remote - SSH** din Visual Studio Code deschide dosarele serverului ca și cum ar fi pe calculatorul dumneavoastră: citește fișierul `~/.ssh/config`, este suficient să alegeți `vpsul-meu`. Editoarele JetBrains oferă aceeași conexiune prin **Remote Development**.

## Accesul unui coleg

Două moduri de a proceda, după ceea ce doriți să îi încredințați:

* **un acces de administrator**: adăugați cheia sa publică lângă a dumneavoastră în **Cheile dumneavoastră publice, câte una pe rând**, apoi **Salvați cheile**;
* **un acces limitat**: creați-i un cont pe server, cu propria cheie:

```
adduser andreea

mkdir -p /home/andreea/.ssh

nano /home/andreea/.ssh/authorized_keys   # lipiți cheia sa publică

chown -R andreea:andreea /home/andreea/.ssh

chmod 700 /home/andreea/.ssh && chmod 600 /home/andreea/.ssh/authorized_keys
```

Pentru a retrage un acces, salvați lista de chei fără cheia sa sau ștergeți-i contul cu `deluser andreea`.

## Înlocuirea unei chei pierdute

Ați schimbat calculatorul sau cheia privată a dispărut: creați o cheie nouă cu `ssh-keygen -t ed25519`, apoi salvați noua cheie publică în casetă, eliminând-o pe cea veche. Este instalată în cel mult un minut și vă recăpătați accesul la server.

## Asistentul dumneavoastră IA

Un asistent IA conectat la zona dumneavoastră de client Simafri (serverul MCP `https://mcp.simafri.com/v1/mcp`) citește serverele, starea, adresele și comanda lor de conectare și salvează pentru dumneavoastră cheile **publice**, cu drepturile persoanei conectate. O cheie privată este refuzată, ca în zona de client.

## Întrebări frecvente

### „Permission denied (publickey)”: ce verific?

1. Caseta serverului indică **Instalate pe server la** urmat de o dată.
2. Amprenta afișată în casetă este cea a cheii dumneavoastră: `ssh-keygen -lf ~/.ssh/id_ed25519.pub`.
3. Comanda dumneavoastră indică portul din casetă și utilizatorul `root`.
4. Dacă cheia dumneavoastră are alt nume, indicați-o: `ssh -i ~/.ssh/cheia_mea -p 22101 root@...`.

Descrieți apoi situația echipei de asistență, cu comanda rulată și mesajul obținut: Asistența integrală vă ajută să restabiliți accesul.

### Conexiunea mi se întrerupe când rămân inactiv.

Adăugați `ServerAliveInterval 60` în blocul dumneavoastră din `~/.ssh/config`: calculatorul menține conexiunea activă. Pentru o comandă lungă, rulați-o în `tmux` sau `screen`, care o țin în viață chiar și după deconectare.

### Zona de client indică „Acest text conține o cheie PRIVATĂ”.

Ați lipit fișierul fără `.pub`. Lipiți conținutul fișierului care se termină cu `.pub`. Dacă cheia privată a fost trimisă din greșeală cuiva, creați una nouă și salvați cheia ei publică.

### Mă pot conecta cu o parolă?

Serverul dumneavoastră se deschide cu cheia SSH, metoda cea mai sigură: o cheie nu poate fi ghicită și nu circulă niciodată. Salvați câte o cheie pentru fiecare persoană, iar fiecare își păstrează propriul acces.
