# Pieslēgšanās ar SSH

Jūsu VPS Pro atveras ar jūsu **SSH atslēgu**: failu pāri, kas izveidots jūsu datorā un kura **publisko** daļu jūs saglabājat savā klientu zonā. **Privātā** daļa paliek jūsu datorā un netiek nodota nevienam, arī mūsu komandai.

## Atslēgas izveide

macOS, Linux un Windows 10 vai 11 (PowerShell vai Terminālis) pietiek ar vienu komandu:

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

Pieņemiet piedāvāto atrašanās vietu un izvēlieties paroles frāzi atslēgas aizsardzībai. Jūsu konta mapē `.ssh` parādās divi faili:

* `id_ed25519`: jūsu **privātā** atslēga, kas paliek pie jums;
* `id_ed25519.pub`: jūsu **publiskā** atslēga, kuru saglabājat. Tā aizņem vienu rindu, kas sākas ar `ssh-ed25519`.

Lai parādītu publisko atslēgu un to nokopētu:

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

## Atslēgas saglabāšana klientu zonā

1. Atveriet [my.simafri.com](https://my.simafri.com/), sadaļu **VPS**.
2. Sava servera kartītē ielīmējiet savu publisko atslēgu laukā **Jūsu publiskās atslēgas, viena katrā rindā**.
3. Noklikšķiniet uz **Saglabāt atslēgas**.

Jūsu atslēga serverī tiek uzstādīta minūtes laikā, un kartīte to parāda: **Uzstādītas serverī**, kam seko datums, ar katras atslēgas nospiedumu (`SHA256:...`, tas pats, ko parāda `ssh-keygen -lf ~/.ssh/id_ed25519.pub`). Ja atslēga saglabāta servera sagatavošanas laikā, tā tiek uzstādīta servera izveides brīdī.

Noderīgi zināt:

* līdz **10 atslēgām** vienam serverim, viena katrai personai vai katram datoram;
* pieņemtie veidi: **ed25519**, **RSA** ar vismaz 2048 bitiem, **ECDSA** un aparatūras drošības atslēgas (`sk-ssh-ed25519`, `sk-ecdsa`); pieņemts arī PuTTYgen formāts;
* katra saglabāšana **aizstāj** visas saglabātās atslēgas: ielīmējiet visas, kuras vēlaties paturēt;
* atslēgas saglabā konta īpašnieks un **pārvaldnieki**; **operators** tās var apskatīt (skatīt [Dalībnieki un lomas](https://docs.simafri.com/lv/espace-client/membres-et-roles/)).

No klientu zonas saglabātās atslēgas aizņem savu bloku failā `/root/.ssh/authorized_keys`, starp divām atzīmes rindām `my.simafri.com`. Pārējā faila daļa pieder jums: atslēga, ko tur pievienojat pats, ārpus šī bloka, paliek vietā.

## Pieslēgšanās

Jūsu servera kartīte parāda komandu **SSH savienojums**, gatavu kopēšanai:

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

Ports, no 22100 līdz 22999, ir unikāls jūsu serverim: izmantojiet to, kas norādīts jūsu kartītē. Adreses vietā darbojas arī jūsu servera nosaukums:

```
ssh -p 22101 root@app.mana-firma.lv
```

Serverim, kura nosaukums ir jūsu pašu domēnā, šis nosaukums atbild, tiklīdz jūsu DNS ieraksts norāda uz jūsu serveri (skatīt [Vietnes vai lietojumprogrammas publicēšana](/lv/vps-pro/mettre-en-ligne.md)).

### Caur IPv6

Ja jūsu interneta pieslēgumam ir IPv6, varat sasniegt savu serveri arī tieši pēc tā IPv6 adreses, kas redzama kartītē, pa parasto SSH portu:

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

### Saīsne: fails \~/.ssh/config

Lai vairs katru reizi neievadītu portu un adresi, pievienojiet bloku savam failam `~/.ssh/config`:

```
Host mansvps

    HostName app.mana-firma.lv

    Port 22101

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Pēc tam pietiek ar `ssh mansvps`, un tā pati saīsne der `scp`, `rsync`, `git` un jūsu redaktoram.

## No Windows

Windows 10 un 11 ietver OpenSSH klientu: atveriet PowerShell vai Termināli un ielīmējiet savas kartītes komandu. Jūsu saīšņu fails atrodas `C:\Users\<jūsu vārds>\.ssh\config`.

Programmā **PuTTY** ievadiet kartītes adresi un portu sadaļā **Session**, lietotāju `root` sadaļā **Connection > Data** un savu privāto atslēgu `.ppk` formātā sadaļā **Connection > SSH > Auth > Credentials**. PuTTYgen parādīto publisko atslēgu saglabājiet klientu zonā tādu, kāda tā ir.

## Failu pārsūtīšana

Ar to pašu portu un to pašu atslēgu:

```
# viens fails, uz serveri

scp -P 22101 archive.tar.gz root@app.mana-firma.lv:/srv/



# mape, sinhronizēta

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

`scp` portu norāda ar **lielo burtu P**. SFTP programmas, piemēram, FileZilla vai WinSCP, pieslēdzas pa **SFTP** ar adresi, portu un jūsu datorā esošo privāto atslēgu.

## Darbs no jūsu redaktora

Visual Studio Code paplašinājums **Remote - SSH** atver jūsu servera mapes tā, it kā tās būtu jūsu datorā: tas nolasa jūsu failu `~/.ssh/config`, atliek tikai izvēlēties `mansvps`. JetBrains redaktori piedāvā to pašu savienojumu ar **Remote Development**.

## Piekļuves piešķiršana kolēģim

Divi veidi atkarībā no tā, ko vēlaties viņam uzticēt:

* **administratora piekļuve**: pievienojiet viņa publisko atslēgu blakus savējai laukā **Jūsu publiskās atslēgas, viena katrā rindā**, pēc tam **Saglabāt atslēgas**;
* **ierobežota piekļuve**: izveidojiet viņam kontu serverī ar viņa paša atslēgu:

```
adduser camille

mkdir -p /home/camille/.ssh

nano /home/camille/.ssh/authorized_keys   # ielīmējiet viņa publisko atslēgu

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

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

Lai atsauktu piekļuvi, saglabājiet atslēgu sarakstu bez viņa atslēgas vai izdzēsiet viņa kontu ar `deluser camille`.

## Pazaudētas atslēgas aizstāšana

Jūsu dators ir mainījies vai privātā atslēga ir pazudusi: izveidojiet jaunu atslēgu ar `ssh-keygen -t ed25519`, pēc tam saglabājiet jauno publisko atslēgu savā kartītē, izņemot veco. Tā tiek uzstādīta minūtes laikā, un jūs atgūstat piekļuvi savam serverim.

## Jūsu MI asistents

MI asistents, kas pieslēgts jūsu Simafri klientu zonai (MCP serveris `https://mcp.simafri.com/v1/mcp`), nolasa jūsu serverus, to stāvokli, adreses un savienojuma komandu un saglabā jūsu **publiskās** atslēgas jūsu vietā, ar pieslēgtās personas tiesībām. Privātā atslēga tur tiek noraidīta, tāpat kā klientu zonā.

## Biežāk uzdotie jautājumi

### “Permission denied (publickey)”: ko pārbaudīt?

1. Jūsu servera kartītē redzams **Uzstādītas serverī**, kam seko datums.
2. Kartītē redzamais nospiedums ir jūsu atslēgas nospiedums: `ssh-keygen -lf ~/.ssh/id_ed25519.pub`.
3. Jūsu komanda norāda kartītes portu un lietotāju `root`.
4. Ja jūsu atslēgai ir cits nosaukums, norādiet to: `ssh -i ~/.ssh/mana_atslega -p 22101 root@...`.

Pēc tam aprakstiet situāciju atbalsta komandai, pievienojot palaisto komandu un saņemto ziņojumu: Visaptverošais atbalsts palīdz jums atjaunot piekļuvi.

### Mans savienojums pārtrūkst, ja esmu neaktīvs.

Pievienojiet `ServerAliveInterval 60` savam blokam failā `~/.ssh/config`: jūsu dators uztur savienojumu. Ilgu komandu palaidiet `tmux` vai `screen`, kas to uztur darbībā arī pēc atvienošanās.

### Klientu zona ziņo “Šis teksts satur PRIVĀTO atslēgu”.

Jūs ielīmējāt failu bez `.pub`. Ielīmējiet tā faila saturu, kura nosaukums beidzas ar `.pub`. Ja jūsu privātā atslēga kļūdas pēc ir nosūtīta kādam, izveidojiet jaunu atslēgu un saglabājiet tās publisko daļu.

### Vai varu pieslēgties ar paroli?

Jūsu serveris atveras ar SSH atslēgu, drošāko metodi: atslēgu nevar uzminēt, un tā nekad netiek pārsūtīta. Saglabājiet vienu atslēgu katrai personai, un katrai ir sava piekļuve.
