# Prisijungimas per SSH

Jūsų VPS Pro atveriamas jūsų **SSH raktu**: tai failų pora, sukurta jūsų kompiuteryje, kurios **viešąją** dalį įkeliate savo klientų srityje. **Privačioji** dalis lieka jūsų kompiuteryje ir niekam neperduodama, įskaitant mūsų komandą.

## Rakto sukūrimas

macOS, Linux ir Windows 10 ar 11 (PowerShell arba Terminal) sistemose pakanka vienos komandos:

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

Sutikite su siūloma vieta ir pasirinkite slaptafrazę raktui apsaugoti. Jūsų paskyros aplanke `.ssh` atsiranda du failai:

* `id_ed25519`: jūsų **privatusis** raktas, kuris lieka pas jus;
* `id_ed25519.pub`: jūsų **viešasis** raktas, kurį įkeliate. Jis telpa vienoje eilutėje, kuri prasideda `ssh-ed25519`.

Norėdami parodyti viešąjį raktą ir jį nukopijuoti:

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

## Rakto įkėlimas klientų srityje

1. Atverkite [my.simafri.com](https://my.simafri.com/), skiltį **VPS**.
2. Savo serverio kortelėje įklijuokite viešąjį raktą į lauką **Jūsų viešieji raktai, po vieną eilutėje**.
3. Spustelėkite **Išsaugoti raktus**.

Jūsų raktas įdiegiamas serveryje per minutę, ir kortelė tai nurodo: **Įdiegti serveryje** su data, kartu su kiekvieno rakto kontroliniu kodu (`SHA256:...`, tokiu pačiu, kokį rodo `ssh-keygen -lf ~/.ssh/id_ed25519.pub`). Serverio ruošimo metu įkeltas raktas įdiegiamas sukuriant serverį.

Verta žinoti:

* iki **10 raktų** vienam serveriui, po vieną kiekvienam asmeniui ar kompiuteriui;
* priimami tipai: **ed25519**, **RSA** ne mažiau kaip 2048 bitų, **ECDSA** ir aparatiniai saugos raktai (`sk-ssh-ed25519`, `sk-ecdsa`); priimamas ir PuTTYgen formatas;
* kiekvienas išsaugojimas **pakeičia** visus įkeltus raktus: įklijuokite visus, kuriuos norite palikti;
* raktus įkelia paskyros savininkas ir **tvarkytojai**; **operatorius** juos peržiūri (žr. [Nariai ir vaidmenys](https://docs.simafri.com/lt/espace-client/membres-et-roles/)).

Iš klientų srities įkelti raktai užima savo bloką faile `/root/.ssh/authorized_keys`, tarp dviejų žymių eilučių `my.simafri.com`. Likusi failo dalis priklauso jums: raktas, kurį pridedate patys už šio bloko ribų, lieka vietoje.

## Prisijungimas

Jūsų serverio kortelėje rodoma komanda **SSH ryšys**, paruošta kopijuoti:

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

Prievadas, nuo 22100 iki 22999, priklauso tik jūsų serveriui: naudokite nurodytą jūsų kortelėje. Vietoj adreso veikia ir jūsų serverio vardas:

```
ssh -p 22101 root@app.mano-imone.lt
```

Serverio, kurio vardas yra jūsų pačių domene, vardas atsako, kai tik jūsų DNS įrašas nurodo jūsų serverį (žr. [Svetainės ar programos paleidimas internete](/lt/vps-pro/mettre-en-ligne.md)).

### Per IPv6

Jei jūsų interneto ryšys turi IPv6, prie serverio taip pat jungiatės tiesiogiai jo IPv6 adresu, rodomu kortelėje, įprastu SSH prievadu:

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

### Trumpinys: failas \~/.ssh/config

Kad nereikėtų kaskart rašyti prievado ir adreso, pridėkite bloką į savo failą `~/.ssh/config`:

```
Host manovps

    HostName app.mano-imone.lt

    Port 22101

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Tada pakanka `ssh manovps`, o tas pats trumpinys tinka `scp`, `rsync`, `git` ir jūsų redaktoriui.

## Iš Windows

Windows 10 ir 11 turi OpenSSH klientą: atverkite PowerShell arba Terminal ir įklijuokite savo kortelės komandą. Jūsų trumpinių failas yra `C:\Users\<jūsų vardas>\.ssh\config`.

Naudodami **PuTTY**, kortelėje nurodytą adresą ir prievadą įveskite skiltyje **Session**, naudotoją `root` skiltyje **Connection > Data**, o privatųjį raktą `.ppk` formatu skiltyje **Connection > SSH > Auth > Credentials**. PuTTYgen rodomas viešasis raktas įkeliamas į klientų sritį toks, koks yra.

## Failų perdavimas

Tuo pačiu prievadu ir tuo pačiu raktu:

```
# vienas failas, į serverį

scp -P 22101 archive.tar.gz root@app.mano-imone.lt:/srv/



# aplankas, sinchronizuojamas

rsync -avz -e "ssh -p 22101" ./build/ root@app.mano-imone.lt:/var/www/app/
```

`scp` prievadą nurodo **didžiąja P**. SFTP programos, tokios kaip FileZilla ar WinSCP, jungiasi per **SFTP**, naudodamos adresą, prievadą ir jūsų kompiuterio privatųjį raktą.

## Darbas iš redaktoriaus

Visual Studio Code plėtinys **Remote - SSH** atveria jūsų serverio aplankus taip, lyg jie būtų jūsų kompiuteryje: jis skaito jūsų failą `~/.ssh/config`, pakanka pasirinkti `manovps`. JetBrains redaktoriai siūlo tokį pat ryšį per **Remote Development**.

## Prieigos suteikimas kolegai

Du būdai, priklausomai nuo to, ką norite jam patikėti:

* **administratoriaus prieiga**: pridėkite jo viešąjį raktą šalia savojo lauke **Jūsų viešieji raktai, po vieną eilutėje**, tada **Išsaugoti raktus**;
* **ribota prieiga**: sukurkite jam paskyrą serveryje su jo paties raktu:

```
adduser camille

mkdir -p /home/camille/.ssh

nano /home/camille/.ssh/authorized_keys   # įklijuokite jo viešąjį raktą

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

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

Norėdami atšaukti prieigą, išsaugokite raktų sąrašą be jo rakto arba ištrinkite jo paskyrą komanda `deluser camille`.

## Pamesto rakto pakeitimas

Pakeitėte kompiuterį arba dingo jūsų privatusis raktas: sukurkite naują raktą komanda `ssh-keygen -t ed25519`, tada įkelkite naują viešąjį raktą į savo kortelę, pašalindami senąjį. Jis įdiegiamas per minutę, ir jūs vėl turite prieigą prie savo serverio.

## Jūsų DI asistentas

DI asistentas, prijungtas prie jūsų Simafri klientų srities (MCP serveris `https://mcp.simafri.com/v1/mcp`), skaito jūsų serverius, jų būseną, adresus ir prisijungimo komandą bei įkelia jūsų **viešuosius** raktus už jus, su prisijungusio asmens teisėmis. Privatusis raktas ten atmetamas, kaip ir klientų srityje.

## Dažniausiai užduodami klausimai

### „Permission denied (publickey)“: ką patikrinti?

1. Jūsų serverio kortelėje rodoma **Įdiegti serveryje** su data.
2. Kortelėje rodomas kontrolinis kodas yra jūsų rakto: `ssh-keygen -lf ~/.ssh/id_ed25519.pub`.
3. Jūsų komanda nurodo jūsų kortelės prievadą ir naudotoją `root`.
4. Jei jūsų raktas turi kitą pavadinimą, nurodykite jį: `ssh -i ~/.ssh/mano_raktas -p 22101 root@...`.

Tada aprašykite situaciją pagalbos komandai, nurodydami paleistą komandą ir gautą pranešimą: Visapusiška pagalba padės jums atkurti prieigą.

### Mano ryšys nutrūksta, kai esu neaktyvus.

Pridėkite `ServerAliveInterval 60` į savo bloką faile `~/.ssh/config`: jūsų kompiuteris palaikys ryšį. Ilgai trunkančią komandą paleiskite `tmux` ar `screen` aplinkoje, kuri ją palaiko gyvą net atsijungus.

### Klientų srityje rodoma „Šiame tekste yra PRIVATUSIS raktas“.

Įklijavote failą be `.pub`. Įklijuokite failo, kurio pavadinimas baigiasi `.pub`, turinį. Jei jūsų privatusis raktas per klaidą buvo kam nors išsiųstas, sukurkite naują ir įkelkite jo viešąjį raktą.

### Ar galiu prisijungti slaptažodžiu?

Jūsų serveris atveriamas SSH raktu, saugiausiu būdu: rakto neįmanoma atspėti, ir jis niekada neperduodamas. Įkelkite po raktą kiekvienam asmeniui, ir kiekvienas turės savo prieigą.
