# Yhteyden muodostaminen

## SSH-avaimesi

Linuxia käyttävä VPS Ultra -palvelimesi avautuu **SSH-avaimellasi**: tietokoneellasi luotu tiedostopari. **Julkinen** osa asennetaan palvelimelle; **yksityinen** osa pysyy tietokoneellasi, eikä sitä luovuteta kenellekään, ei myöskään tiimillemme.

macOS<!-- -->:ss<!-- -->ä, Linuxissa sekä Windows 10<!-- -->:ss<!-- -->ä ja 11<!-- -->:ss<!-- -->ä (PowerShell tai Windows Terminal):

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

Hyväksy ehdotettu sijainti ja valitse tunnuslause. Julkinen avaimesi on tiedosto `id_ed25519.pub`: rivi, joka alkaa `ssh-ed25519`. Toimita se tiimillemme tilauksen yhteydessä: asennamme sen palvelimellesi sen valmistelun aikana.

## SSH-yhteyden muodostaminen

Palvelimesi kortti asiakasalueesi osiossa **VPS** näyttää komennon **SSH-yhteys**:

```
ssh root@203.0.113.20
```

Palvelimellasi on oma IPv4-osoite: yhteys muodostetaan tavalliseen SSH-porttiin 22 tai siihen, jonka valitset tiedostossa `/etc/ssh/sshd_config`. Kun verkkotunnuksesi osoittaa palvelimeesi, myös sen nimi toimii: `ssh root@app.yrityksesi.fi`.

### Pikakuvake: tiedosto \~/.ssh/config

```
Host monultra

    HostName 203.0.113.20

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Sen jälkeen `ssh monultra` riittää, ja samaa pikakuvaketta käyttävät `scp`, `rsync`, `git` ja editorisi.

## Avaimen lisääminen tai korvaaminen

Palvelimesi avaimet ovat tiedostossa `/root/.ssh/authorized_keys`, yksi riviä kohden, ja hallitset niitä itse:

* **työtoverin lisääminen**: liitä hänen julkinen avaimensa tiedoston uudelle riville tai luo hänelle oma tili (`adduser`), jonka avain on tiedostossa `/home/<hänen tilinsä>/.ssh/authorized_keys`;
* **pääsyn poistaminen**: poista hänen rivinsä;
* **tietokoneen vaihtaminen**: lisää uusi julkinen avaimesi ennen vanhan poistamista.

Onko yksityinen avaimesi kadonnut, eikä mikään avain enää avaa palvelinta? Lähetä uusi julkinen avaimesi tukeen: tiimimme asentaa sen palvelimellesi.

## Tiedostojen siirtäminen

```
# yksi tiedosto palvelimelle

scp archive.tar.gz root@203.0.113.20:/srv/



# kansio synkronoituna

rsync -avz ./build/ root@203.0.113.20:/var/www/app/
```

SFTP-ohjelmat, kuten FileZilla tai WinSCP, muodostavat yhteyden **SFTP**:ll<!-- -->ä palvelimesi osoitteella ja yksityisellä avaimellasi.

## Työskentely editorista

Visual Studio Coden laajennus **Remote - SSH** avaa palvelimesi kansiot ikään kuin ne olisivat tietokoneellasi: se lukee tiedostosi `~/.ssh/config`, joten riittää valita `monultra`. JetBrainsin editorit tarjoavat saman yhteyden toiminnolla **Remote Development**.

## Windows Server: etätyöpöytä

Windows Serveriä käyttävä VPS Ultra avautuu **etätyöpöydällä** (RDP):

1. Käynnistä Windowsissa **Etätyöpöytäyhteys** (`mstsc`), macOS
   <!-- -->
   :ss
   <!-- -->
   ä Microsoftin sovellus **Windows App** ja Linuxissa Remmina.
2. Syötä palvelimesi IPv4-osoite, joka näkyy sen kortissa.
3. Kirjaudu järjestelmänvalvojan tilillä, jonka tiimimme antaa toimituksen yhteydessä, ja vaihda sen salasana ensimmäisen istunnon aikana.

Suojaa sitten pääsysi: pitkä ja yksilöllinen salasana, ja etätyöpöytä rajattuna omiin osoitteisiisi Windowsin palomuurissa.

## Usein kysytyt kysymykset

### ”Permission denied (publickey)”: mitä tarkistaa?

1. Käyttämäsi avain on se, jonka toimitit meille: `ssh-keygen -lf ~/.ssh/id_ed25519.pub` näyttää sen sormenjäljen.
2. Komentosi käyttää käyttäjää `root` ja kortissasi näkyvää osoitetta.
3. Jos avaimesi nimi on toinen, ilmoita se: `ssh -i ~/.ssh/ma_cle root@...`.

Kuvaile sitten tilanne tuelle ja kerro suorittamasi komento ja saamasi ilmoitus: Kokonaistuki auttaa sinua palauttamaan pääsyn.

### Yhteyteni katkeaa, kun olen toimettomana.

Lisää `ServerAliveInterval 60` lohkoosi tiedostossa `~/.ssh/config` ja aja pitkät komennot `tmux`- tai `screen`-istunnossa, joka pitää ne käynnissä myös yhteyden katkettua.
