# Csatlakozás SSH-n

VPS Pro szervere az Ön **SSH-kulcsával** nyílik meg: ez egy fájlpár, amelyet a számítógépén hoz létre, és amelynek **nyilvános** részét feltölti az ügyfélfelületére. A **privát** rész a számítógépén marad, és senkinek sem adja át, csapatunknak sem.

## A kulcs létrehozása

macOS-en, Linuxon és Windows 10 vagy 11 alatt (PowerShell vagy Terminál) egyetlen parancs elég:

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

Fogadja el a felajánlott helyet, és válasszon jelmondatot a kulcs védelmére. Két fájl jelenik meg a fiókja `.ssh` mappájában:

* `id_ed25519`: az Ön **privát** kulcsa, amely Önnél marad;
* `id_ed25519.pub`: az Ön **nyilvános** kulcsa, ezt tölti fel. Egyetlen sorból áll, amely `ssh-ed25519` előtaggal kezdődik.

A nyilvános kulcs megjelenítése és másolása:

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

## A kulcs feltöltése az ügyfélfelületre

1. Nyissa meg a [my.simafri.com](https://my.simafri.com/) oldalt, a **VPS** rovatot.
2. A szervere kártyáján illessze be a nyilvános kulcsát **Az Ön nyilvános kulcsai, soronként egy** mezőbe.
3. Kattintson a **Kulcsok mentése** gombra.

A kulcsa egy percen belül a szerverre kerül, és a kártya ezt jelzi: **A szerverre telepítve:**, utána a dátum, valamint minden kulcs ujjlenyomata (`SHA256:...`, ugyanaz, amelyet az `ssh-keygen -lf ~/.ssh/id_ed25519.pub` parancs mutat). Ha a szerver előkészítése alatt tölti fel, a kulcs a szerver létrehozásakor kerül fel.

Jó tudni:

* szerverenként legfeljebb **10 kulcs**, személyenként vagy számítógépenként egy;
* elfogadott típusok: **ed25519**, legalább 2048 bites **RSA**, **ECDSA**, valamint a hardveres biztonsági kulcsok (`sk-ssh-ed25519`, `sk-ecdsa`); a PuTTYgen formátum is elfogadott;
* minden mentés **lecseréli** a feltöltött kulcsok teljes készletét: illessze be mindazokat, amelyeket meg szeretne tartani;
* a fiók tulajdonosa és a **kezelők** töltik fel a kulcsokat; az **operátorok** megtekintik őket (lásd [Tagok és szerepkörök](https://docs.simafri.com/hu/espace-client/membres-et-roles/)).

Az ügyfélfelületről feltöltött kulcsok a `/root/.ssh/authorized_keys` fájl saját blokkjában helyezkednek el, két `my.simafri.com` jelölősor között. A fájl többi része az Öné: egy kulcs, amelyet Ön maga ad hozzá ezen a blokkon kívül, a helyén marad.

## Csatlakozás

A szervere kártyája megjeleníti az **SSH-kapcsolat** parancsot, másolásra készen:

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

A port, 22100 és 22999 között, az Ön szerverére jellemző: a kártyáján szereplőt használja. A cím helyett a szervere neve is működik:

```
ssh -p 22101 root@app.azoncege.hu
```

Ha a szervere neve az Ön saját domainje alá tartozik, ez a név akkor válaszol, amikor a DNS-rekordja már a szerverére mutat (lásd [Webhely vagy alkalmazás élesítése](/hu/vps-pro/mettre-en-ligne.md)).

### IPv6-on

Ha internetkapcsolata támogatja az IPv6-ot, szerverét közvetlenül az IPv6-címén is elérheti, amely a kártyán látható, a szokásos SSH-porton:

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

### Egy rövidítés: a \~/.ssh/config fájl

Hogy ne kelljen újra és újra beírnia a portot és a címet, adjon hozzá egy blokkot a `~/.ssh/config` fájljához:

```
Host monvps

    HostName app.azoncege.hu

    Port 22101

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Ezután elég az `ssh monvps` parancs, és ugyanez a rövidítés működik az `scp`, az `rsync`, a `git` és a szerkesztője számára is.

## Windowsról

A Windows 10 és 11 tartalmazza az OpenSSH-klienst: nyissa meg a PowerShellt vagy a Terminált, és illessze be a kártyáján lévő parancsot. A rövidítéseket tartalmazó fájlja a `C:\Users\<felhasználónév>\.ssh\config` helyen található.

A **PuTTY** esetében a kártyáján lévő címet és portot a **Session** részben adja meg, a `root` felhasználót a **Connection > Data** részben, a `.ppk` formátumú privát kulcsát pedig a **Connection > SSH > Auth > Credentials** részben. A PuTTYgen által megjelenített nyilvános kulcsot változtatás nélkül töltheti fel az ügyfélfelületére.

## Fájlok átvitele

Ugyanazzal a porttal és ugyanazzal a kulccsal:

```
# egy fájl a szerverre

scp -P 22101 archive.tar.gz root@app.azoncege.hu:/srv/



# egy mappa, szinkronizálva

rsync -avz -e "ssh -p 22101" ./build/ root@app.azoncege.hu:/var/www/app/
```

Az `scp` a portot **nagy P** betűvel várja. Az SFTP-programok, mint a FileZilla vagy a WinSCP, **SFTP**-n csatlakoznak, a címmel, a porttal és a számítógépén lévő privát kulccsal.

## Munka a szerkesztőjéből

A Visual Studio Code **Remote - SSH** bővítménye úgy nyitja meg a szervere mappáit, mintha a számítógépén lennének: beolvassa a `~/.ssh/config` fájlját, elég kiválasztania a `monvps` bejegyzést. A JetBrains-szerkesztők ugyanezt a kapcsolatot a **Remote Development** révén kínálják.

## Hozzáférés egy kollégának

Kétféleképpen, aszerint, hogy mit szeretne rábízni:

* **rendszergazdai hozzáférés**: adja hozzá a nyilvános kulcsát a sajátja mellé **Az Ön nyilvános kulcsai, soronként egy** mezőben, majd kattintson a **Kulcsok mentése** gombra;
* **korlátozott hozzáférés**: hozzon létre neki egy fiókot a szerveren, a saját kulcsával:

```
adduser camille

mkdir -p /home/camille/.ssh

nano /home/camille/.ssh/authorized_keys   # illessze be a nyilvános kulcsát

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

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

Egy hozzáférés visszavonásához mentse el a kulcsok listáját az ő kulcsa nélkül, vagy törölje a fiókját a `deluser camille` paranccsal.

## Elveszett kulcs cseréje

Számítógépet cserélt, vagy eltűnt a privát kulcsa: hozzon létre új kulcsot az `ssh-keygen -t ed25519` paranccsal, majd töltse fel az új nyilvános kulcsot a kártyáján, a régit eltávolítva. Egy percen belül felkerül, és ismét hozzáfér a szerveréhez.

## Az Ön MI-asszisztense

Egy, a Simafri-ügyfélfelületéhez csatlakoztatott MI-asszisztens (MCP-szerver: `https://mcp.simafri.com/v1/mcp`) olvassa a szervereit, azok állapotát, címeit és csatlakozási parancsát, és Ön helyett feltölti a **nyilvános** kulcsait, a bejelentkezett személy jogosultságaival. A privát kulcsot elutasítja, akárcsak az ügyfélfelület.

## Gyakori kérdések

### „Permission denied (publickey)”: mit ellenőrizzek?

1. A szervere kártyáján ez áll: **A szerverre telepítve:**, utána egy dátummal.
2. A kártyán látható ujjlenyomat az Ön kulcsáé: `ssh-keygen -lf ~/.ssh/id_ed25519.pub`.
3. A parancsa a kártyáján szereplő portot és a `root` felhasználót adja meg.
4. Ha a kulcsa más nevet visel, adja meg: `ssh -i ~/.ssh/ma_cle -p 22101 root@...`.

Ezután írja le a helyzetet a támogatásnak, a futtatott paranccsal és a kapott üzenettel: a Teljes körű támogatás segít helyreállítani a hozzáférést.

### A kapcsolatom megszakad, ha egy ideig inaktív vagyok.

Adja hozzá a `ServerAliveInterval 60` sort a `~/.ssh/config` fájlban lévő blokkjához: számítógépe életben tartja a kapcsolatot. Egy hosszú parancsot `tmux` vagy `screen` alatt indítson, amelyek a kapcsolat megszakadása után is életben tartják.

### Az ügyfélfelület ezt írja: „Ez a szöveg PRIVÁT kulcsot tartalmaz”.

A `.pub` nélküli fájlt illesztette be. Illessze be a `.pub` végű fájl tartalmát. Ha a privát kulcsát tévedésből elküldte valakinek, hozzon létre újat, és töltse fel annak nyilvános kulcsát.

### Csatlakozhatok jelszóval?

Szervere SSH-kulccsal nyílik meg, ez a legbiztonságosabb módszer: egy kulcsot nem lehet kitalálni, és soha nem kerül továbbításra. Töltsön fel személyenként egy kulcsot, és mindenkinek megmarad a saját hozzáférése.
