# Připojení přes SSH

Váš VPS Pro se otevírá vaším **klíčem SSH**: dvojicí souborů vytvořenou na vašem počítači, jejíž **veřejnou** část uložíte v zákaznické zóně. **Soukromá** část zůstává na vašem počítači a nikomu se nepředává, ani našemu týmu.

## Vytvoření klíče

V macOS, Linuxu a Windows 10 nebo 11 (PowerShell nebo Terminál) stačí jediný příkaz:

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

Potvrďte navržené umístění a zvolte heslovou frázi, která klíč ochrání. Ve složce `.ssh` vašeho účtu se objeví dva soubory:

* `id_ed25519`: váš **soukromý** klíč, který zůstává u vás;
* `id_ed25519.pub`: váš **veřejný** klíč, ten, který ukládáte. Vejde se na jeden řádek, který začíná `ssh-ed25519`.

Zobrazení veřejného klíče, abyste ho mohli zkopírovat:

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

## Uložení klíče v zákaznické zóně

1. Otevřete [my.simafri.com](https://my.simafri.com/), sekci **VPS**.
2. Na kartě svého serveru vložte veřejný klíč do pole **Vaše veřejné klíče, jeden na řádek**.
3. Klikněte na **Uložit klíče**.

Váš klíč se na server nainstaluje do minuty a karta to zobrazí: **Nainstalovány na server** s datem, s otiskem každého klíče (`SHA256:...`, stejným, jaký zobrazí `ssh-keygen -lf ~/.ssh/id_ed25519.pub`). Pokud klíč uložíte během přípravy serveru, nainstaluje se při jeho vytvoření.

Dobré vědět:

* až **10 klíčů** na server, jeden na osobu nebo na počítač;
* podporované typy: **ed25519**, **RSA** alespoň 2048 bitů, **ECDSA** a hardwarové bezpečnostní klíče (`sk-ssh-ed25519`, `sk-ecdsa`); přijímá se i formát PuTTYgen;
* každé uložení **nahradí** celou sadu uložených klíčů: vložte všechny, které chcete ponechat;
* klíče ukládají vlastník účtu a **správci**; **operátor** si je může prohlížet (viz [Členové a role](https://docs.simafri.com/cz/espace-client/membres-et-roles/)).

Klíče uložené ze zákaznické zóny zabírají vlastní blok v souboru `/root/.ssh/authorized_keys`, mezi dvěma značkovacími řádky `my.simafri.com`. Zbytek souboru patří vám: klíč, který tam přidáte sami mimo tento blok, zůstane na místě.

## Připojení

Karta vašeho serveru zobrazuje příkaz **Připojení SSH**, připravený ke zkopírování:

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

Port, mezi 22100 a 22999, patří jen vašemu serveru: použijte ten ze své karty. Místo adresy funguje i název vašeho serveru:

```
ssh -p 22101 root@app.moje-firma.cz
```

U serveru, jehož název leží pod vaší vlastní doménou, tento název odpovídá, jakmile váš záznam DNS ukazuje na váš server (viz [Zveřejnění webu nebo aplikace](/cz/vps-pro/mettre-en-ligne.md)).

### Přes IPv6

Pokud vaše internetové připojení podporuje IPv6, dostanete se ke svému serveru i přímo přes jeho adresu IPv6, zobrazenou na kartě, na obvyklém portu SSH:

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

### Zkratka: soubor \~/.ssh/config

Abyste už nemuseli znovu zadávat port a adresu, přidejte do souboru `~/.ssh/config` blok:

```
Host mujvps

    HostName app.moje-firma.cz

    Port 22101

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Pak stačí `ssh mujvps` a stejnou zkratku využijí i `scp`, `rsync`, `git` a váš editor.

## Z Windows

Windows 10 a 11 obsahují klienta OpenSSH: otevřete PowerShell nebo Terminál a vložte příkaz ze své karty. Váš soubor se zkratkami najdete v `C:\Users\<vaše jméno>\.ssh\config`.

V **PuTTY** zadejte adresu a port ze své karty v části **Session**, uživatele `root` v **Connection > Data** a svůj soukromý klíč ve formátu `.ppk` v **Connection > SSH > Auth > Credentials**. Veřejný klíč zobrazený v PuTTYgen uložíte do zákaznické zóny tak, jak je.

## Přenos souborů

Se stejným portem a stejným klíčem:

```
# jeden soubor, na server

scp -P 22101 archive.tar.gz root@app.moje-firma.cz:/srv/



# složka, synchronizovaná

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

`scp` zadává port **velkým P**. Programy SFTP jako FileZilla nebo WinSCP se připojují přes **SFTP**, s adresou, portem a soukromým klíčem z vašeho počítače.

## Práce z editoru

Rozšíření **Remote - SSH** pro Visual Studio Code otevírá složky vašeho serveru, jako by byly na vašem počítači: načte váš soubor `~/.ssh/config`, stačí zvolit `mujvps`. Editory JetBrains nabízejí stejné připojení přes **Remote Development**.

## Přístup pro kolegu

Dvě možnosti, podle toho, co mu chcete svěřit:

* **administrátorský přístup**: přidejte jeho veřejný klíč vedle svého do pole **Vaše veřejné klíče, jeden na řádek** a klikněte na **Uložit klíče**;
* **omezený přístup**: vytvořte mu na serveru účet s vlastním klíčem:

```
adduser camille

mkdir -p /home/camille/.ssh

nano /home/camille/.ssh/authorized_keys   # vložte veřejný klíč kolegy

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

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

Chcete-li přístup odebrat, uložte seznam klíčů bez jeho klíče, nebo smažte jeho účet příkazem `deluser camille`.

## Náhrada ztraceného klíče

Změnili jste počítač nebo se váš soukromý klíč ztratil: vytvořte nový klíč příkazem `ssh-keygen -t ed25519` a pak uložte nový veřejný klíč na kartě a starý odeberte. Nainstaluje se do minuty a k serveru se opět dostanete.

## Váš AI asistent

AI asistent připojený k vaší zákaznické zóně Simafri (server MCP `https://mcp.simafri.com/v1/mcp`) čte vaše servery, jejich stav, adresy a příkaz pro připojení a ukládá za vás vaše **veřejné** klíče, s právy přihlášené osoby. Soukromý klíč odmítne, stejně jako zákaznická zóna.

## Časté otázky

### „Permission denied (publickey)“: co zkontrolovat?

1. Karta vašeho serveru zobrazuje **Nainstalovány na server** s datem.
2. Otisk zobrazený na kartě odpovídá vašemu klíči: `ssh-keygen -lf ~/.ssh/id_ed25519.pub`.
3. Váš příkaz uvádí port z vaší karty a uživatele `root`.
4. Pokud se váš klíč jmenuje jinak, uveďte ho: `ssh -i ~/.ssh/muj_klic -p 22101 root@...`.

Pak situaci popište podpoře, s použitým příkazem a obdrženou zprávou: Komplexní podpora vám pomůže přístup obnovit.

### Spojení se přerušuje, když nic nedělám.

Přidejte `ServerAliveInterval 60` do svého bloku v `~/.ssh/config`: váš počítač bude spojení udržovat. Dlouhý příkaz spusťte v `tmux` nebo `screen`, které ho udrží naživu i po odpojení.

### Zákaznická zóna hlásí „Tento text obsahuje SOUKROMÝ klíč“.

Vložili jste soubor bez `.pub`. Vložte obsah souboru, který končí na `.pub`. Pokud byl váš soukromý klíč omylem někomu odeslán, vytvořte si nový a uložte jeho veřejný klíč.

### Mohu se připojit heslem?

Váš server se otevírá klíčem SSH, nejbezpečnější metodou: klíč nelze uhodnout a nikdy se nepřenáší. Uložte jeden klíč na osobu a každý si zachová vlastní přístup.
