# Ühendumine SSH kaudu

Teie VPS Pro avaneb teie **SSH-võtmega**: see on teie arvutis loodud failipaar, mille **avaliku** osa lisate oma kliendialas. **Privaatne** osa jääb teie arvutisse ja seda ei edastata kellelegi, ka mitte meie meeskonnale.

## Võtme loomine

macOS-is, Linuxis ja Windows 10-s või 11-s (PowerShell või Terminal) piisab ühest käsust:

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

Nõustuge pakutud asukohaga ja valige võtme kaitseks paroolifraas. Teie konto kausta `.ssh` ilmub kaks faili:

* `id_ed25519`: teie **privaatvõti**, mis jääb teie juurde;
* `id_ed25519.pub`: teie **avalik** võti, mille lisate. See mahub ühele reale, mis algab tekstiga `ssh-ed25519`.

Avaliku võtme kuvamiseks ja kopeerimiseks:

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

## Võtme lisamine kliendialas

1. Avage [my.simafri.com](https://my.simafri.com/), jaotis **VPS**.
2. Kleepige oma serveri kaardil oma avalik võti väljale **Teie avalikud võtmed, üks rea kohta**.
3. Klõpsake **Salvesta võtmed**.

Teie võti paigaldatakse serverisse minuti jooksul ja kaart näitab seda: **Paigaldatud serverisse**, millele järgneb kuupäev, koos iga võtme sõrmejäljega (`SHA256:...`, sama, mida näitab `ssh-keygen -lf ~/.ssh/id_ed25519.pub`). Serveri ettevalmistamise ajal lisatud võti paigaldatakse serveri loomisel.

Hea teada:

* kuni **10 võtit** serveri kohta, üks inimese või arvuti kohta;
* toetatud tüübid: **ed25519**, vähemalt 2048-bitine **RSA**, **ECDSA** ja riistvaralised turvavõtmed (`sk-ssh-ed25519`, `sk-ecdsa`); aktsepteeritakse ka PuTTYgeni vormingut;
* iga salvestamine **asendab** kõik lisatud võtmed: kleepige kõik, mida soovite alles hoida;
* võtmeid lisavad konto omanik ja **haldurid**; **operaator** saab neid vaadata (vt [Liikmed ja rollid](https://docs.simafri.com/ee/espace-client/membres-et-roles/)).

Kliendialast lisatud võtmed asuvad failis `/root/.ssh/authorized_keys` oma plokis, kahe `my.simafri.com` märgisrea vahel. Ülejäänud fail kuulub teile: võti, mille lisate sinna ise väljaspool seda plokki, jääb alles.

## Ühendumine

Teie serveri kaart näitab käsku **SSH-ühendus**, kopeerimiseks valmis:

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

Port vahemikus 22100 kuni 22999 on teie serveri oma: kasutage seda, mis on teie kaardil. Aadressi asemel töötab ka teie serveri nimi:

```
ssh -p 22101 root@app.minu-firma.ee
```

Kui serveri nimi on teie enda domeeni all, vastab see nimi kohe, kui teie DNS-kirje osutab teie serverile (vt [Saidi või rakenduse avaldamine](/ee/vps-pro/mettre-en-ligne.md)).

### IPv6 kaudu

Kui teie internetiühendusel on IPv6, jõuate oma serverini ka otse selle IPv6-aadressi kaudu, mis on kuvatud kaardil, tavalisel SSH-pordil:

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

### Otsetee: fail \~/.ssh/config

Et porti ja aadressi enam uuesti mitte sisestada, lisage oma faili `~/.ssh/config` plokk:

```
Host minuvps

    HostName app.minu-firma.ee

    Port 22101

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Seejärel piisab käsust `ssh minuvps` ja sama otsetee töötab ka `scp`, `rsync`, `git` ja teie redaktori jaoks.

## Windowsist

Windows 10 ja 11 sisaldavad OpenSSH klienti: avage PowerShell või Terminal ja kleepige käsk oma kaardilt. Teie otseteede fail asub asukohas `C:\Users\<teie nimi>\.ssh\config`.

**PuTTY**-s sisestage oma kaardil olev aadress ja port jaotisesse **Session**, kasutaja `root` jaotisesse **Connection > Data** ja oma `.ppk`-vormingus privaatvõti jaotisesse **Connection > SSH > Auth > Credentials**. PuTTYgeni kuvatud avaliku võtme saate lisada oma kliendialas sellisena, nagu see on.

## Failide edastamine

Sama pordi ja sama võtmega:

```
# üks fail serverisse

scp -P 22101 archive.tar.gz root@app.minu-firma.ee:/srv/



# kaust, sünkroonituna

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

`scp` võtab pordi vastu **suure P-tähega**. SFTP-programmid nagu FileZilla või WinSCP ühenduvad **SFTP** kaudu, kasutades aadressi, porti ja teie arvutis olevat privaatvõtit.

## Töötamine oma redaktorist

Visual Studio Code'i laiendus **Remote - SSH** avab teie serveri kaustad nii, nagu oleksid need teie arvutis: see loeb teie faili `~/.ssh/config` ja piisab, kui valite `minuvps`. JetBrainsi redaktorid pakuvad sama ühendust funktsiooniga **Remote Development**.

## Juurdepääsu andmine kolleegile

Kaks võimalust, olenevalt sellest, mida soovite talle usaldada:

* **administraatori juurdepääs**: lisage tema avalik võti enda oma kõrvale väljale **Teie avalikud võtmed, üks rea kohta** ja klõpsake **Salvesta võtmed**;
* **piiratud juurdepääs**: looge talle serverisse konto tema enda võtmega:

```
adduser camille

mkdir -p /home/camille/.ssh

nano /home/camille/.ssh/authorized_keys   # kleepige tema avalik võti

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

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

Juurdepääsu eemaldamiseks salvestage võtmete loend ilma tema võtmeta või kustutage tema konto käsuga `deluser camille`.

## Kaotatud võtme asendamine

Kas vahetasite arvutit või kadus teie privaatvõti? Looge uus võti käsuga `ssh-keygen -t ed25519` ja lisage uus avalik võti oma kaardile, eemaldades vana. See paigaldatakse minuti jooksul ja teil on taas juurdepääs oma serverile.

## Teie tehisintellekti assistent

Teie Simafri kliendialaga ühendatud tehisintellekti assistent (MCP-server `https://mcp.simafri.com/v1/mcp`) loeb teie servereid, nende olekut, aadresse ja ühenduse käsku ning lisab teie eest teie **avalikud** võtmed, sisseloginud inimese õigustega. Privaatvõti lükatakse seal tagasi, nagu ka kliendialas.

## Korduma kippuvad küsimused

### „Permission denied (publickey)“: mida kontrollida?

1. Teie serveri kaardil on **Paigaldatud serverisse**, millele järgneb kuupäev.
2. Kaardil kuvatud sõrmejälg on teie võtme oma: `ssh-keygen -lf ~/.ssh/id_ed25519.pub`.
3. Teie käsk kasutab teie kaardil olevat porti ja kasutajat `root`.
4. Kui teie võtmel on teine nimi, märkige see: `ssh -i ~/.ssh/ma_cle -p 22101 root@...`.

Seejärel kirjeldage olukorda klienditoele koos käivitatud käsu ja saadud teatega: Terviklik tugi aitab teil juurdepääsu taastada.

### Minu ühendus katkeb, kui olen mõnda aega passiivne.

Lisage oma plokki failis `~/.ssh/config` rida `ServerAliveInterval 60`: teie arvuti hoiab ühendust elus. Pika käsu puhul käivitage see `tmux`-is või `screen`-is, mis hoiavad selle töös ka siis, kui ühendus katkeb.

### Kliendiala näitab teadet „See tekst sisaldab PRIVAATVÕTIT“.

Kleepisite faili, mille nimel puudub lõpp `.pub`. Kleepige selle faili sisu, mille nimi lõpeb `.pub`. Kui teie privaatvõti on kogemata kellelegi saadetud, looge uus võti ja lisage selle avalik võti.

### Kas saan ühenduda parooliga?

Teie server avaneb SSH-võtmega, mis on kõige turvalisem meetod: võtit ei saa ära arvata ja seda ei edastata kunagi. Lisage üks võti inimese kohta ja igaühel on oma juurdepääs.
