# Ansluta via SSH

Din VPS Pro öppnas med din **SSH-nyckel**: ett par filer som skapas på din dator, och vars **publika** del du lägger in i ditt kundområde. Den **privata** delen stannar på din dator och lämnas inte ut till någon, inte heller till vårt team.

## Skapa din nyckel

På macOS, Linux och Windows 10 eller 11 (PowerShell eller Terminal) räcker ett enda kommando:

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

Godkänn den föreslagna platsen och välj en lösenfras för att skydda nyckeln. Två filer skapas i mappen `.ssh` på ditt konto:

* `id_ed25519`: din **privata** nyckel, som stannar hos dig;
* `id_ed25519.pub`: din **publika** nyckel, den som du lägger in. Den ryms på en rad som börjar med `ssh-ed25519`.

Så här visar du den publika nyckeln och kopierar den:

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

## Lägga in din nyckel i kundområdet

1. Öppna [my.simafri.com](https://my.simafri.com/), avsnittet **VPS**.
2. Klistra in din publika nyckel i **Dina publika nycklar, en per rad** på din servers kort.
3. Klicka på **Spara nycklarna**.

Din nyckel läggs in på servern inom en minut, och kortet visar det: **Inlagda på servern den** följt av datumet, med fingeravtrycket för varje nyckel (`SHA256:...`, detsamma som `ssh-keygen -lf ~/.ssh/id_ed25519.pub` visar). Lägger du in nyckeln medan servern förbereds läggs den in när servern skapas.

Bra att veta:

* upp till **10 nycklar** per server, en per person eller per dator;
* godkända typer: **ed25519**, **RSA** på minst 2048 bitar, **ECDSA** och hårdvarubaserade säkerhetsnycklar (`sk-ssh-ed25519`, `sk-ecdsa`); PuTTYgen-formatet godkänns också;
* varje sparning **ersätter** alla inlagda nycklar: klistra in alla som du vill behålla;
* kontots ägare och **förvaltarna** lägger in nycklarna; en **operatör** kan se dem (se [Medlemmar och roller](https://docs.simafri.com/se/espace-client/membres-et-roles/)).

Nycklarna som läggs in från kundområdet har ett eget block i filen `/root/.ssh/authorized_keys`, mellan två markeringsrader `my.simafri.com`. Resten av filen tillhör dig: en nyckel som du själv lägger till där, utanför det blocket, ligger kvar.

## Ansluta

Din servers kort visar kommandot **SSH-anslutning**, klart att kopiera:

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

Porten, mellan 22100 och 22999, är unik för din server: använd den som står på ditt kort. Din servers namn fungerar också i stället för adressen:

```
ssh -p 22101 root@app.dittforetag.se
```

För en server vars namn ligger under din egen domän svarar namnet så snart din DNS-post pekar på din server (se [Publicera en webbplats eller en applikation](/se/vps-pro/mettre-en-ligne.md)).

### Via IPv6

Om din internetanslutning har IPv6 når du också din server direkt via dess IPv6-adress, som visas på kortet, på den vanliga SSH-porten:

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

### En genväg: filen \~/.ssh/config

För att slippa skriva porten och adressen varje gång lägger du till ett block i din fil `~/.ssh/config`:

```
Host minvps

    HostName app.dittforetag.se

    Port 22101

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Därefter räcker `ssh minvps`, och samma genväg fungerar för `scp`, `rsync`, `git` och din editor.

## Från Windows

Windows 10 och 11 har OpenSSH-klienten inbyggd: öppna PowerShell eller Terminal och klistra in kommandot från ditt kort. Din fil med genvägar finns i `C:\Users\<ditt namn>\.ssh\config`.

Med **PuTTY** anger du adressen och porten från ditt kort under **Session**, användaren `root` under **Connection > Data**, och din privata nyckel i formatet `.ppk` under **Connection > SSH > Auth > Credentials**. Den publika nyckel som PuTTYgen visar lägger du in som den är i ditt kundområde.

## Överföra filer

Med samma port och samma nyckel:

```
# en fil, till servern

scp -P 22101 archive.tar.gz root@app.dittforetag.se:/srv/



# en mapp, synkroniserad

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

`scp` tar porten med **versalt P**. SFTP-program som FileZilla eller WinSCP ansluter via **SFTP**, med adressen, porten och den privata nyckeln på din dator.

## Arbeta från din editor

Tillägget **Remote - SSH** för Visual Studio Code öppnar mapparna på din server som om de låg på din dator: det läser din fil `~/.ssh/config`, och du behöver bara välja `minvps`. JetBrains-editorerna erbjuder samma anslutning via **Remote Development**.

## Ge en kollega åtkomst

Två sätt, beroende på vad du vill anförtro kollegan:

* **administratörsåtkomst**: lägg till kollegans publika nyckel bredvid din egen i **Dina publika nycklar, en per rad** och klicka sedan på **Spara nycklarna**;
* **begränsad åtkomst**: skapa ett konto på servern åt kollegan, med en egen nyckel:

```
adduser camille

mkdir -p /home/camille/.ssh

nano /home/camille/.ssh/authorized_keys   # klistra in kollegans publika nyckel

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

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

För att ta bort en åtkomst sparar du listan med nycklar utan kollegans nyckel, eller tar bort kontot med `deluser camille`.

## Ersätta en förlorad nyckel

Har du bytt dator eller har din privata nyckel försvunnit: skapa en ny nyckel med `ssh-keygen -t ed25519` och lägg sedan in den nya publika nyckeln på ditt kort i stället för den gamla. Den läggs in inom en minut, och du får tillbaka åtkomsten till din server.

## Din AI-assistent

En AI-assistent som är kopplad till ditt Simafri-kundområde (MCP-servern `https://mcp.simafri.com/v1/mcp`) läser dina servrar, deras status, deras adresser och deras anslutningskommando, och lägger in dina **publika** nycklar åt dig, med den inloggade personens behörigheter. En privat nyckel avvisas där, precis som i kundområdet.

## Vanliga frågor

### ”Permission denied (publickey)”: vad ska jag kontrollera?

1. Din servers kort visar **Inlagda på servern den** följt av ett datum.
2. Fingeravtrycket som visas på kortet är din nyckels: `ssh-keygen -lf ~/.ssh/id_ed25519.pub`.
3. Ditt kommando anger verkligen porten från ditt kort och användaren `root`.
4. Om din nyckel har ett annat namn anger du den: `ssh -i ~/.ssh/min_nyckel -p 22101 root@...`.

Beskriv sedan situationen för supporten, med kommandot du körde och meddelandet du fick: Heltäckande support hjälper dig att återfå åtkomsten.

### Min anslutning bryts när jag är inaktiv.

Lägg till `ServerAliveInterval 60` i ditt block i `~/.ssh/config`: din dator håller anslutningen vid liv. Kör ett långt kommando i `tmux` eller `screen`, som håller det vid liv även när du är frånkopplad.

### Kundområdet visar ”Den här texten innehåller en PRIVAT nyckel”.

Du har klistrat in filen utan `.pub`. Klistra in innehållet i filen som slutar på `.pub`. Om din privata nyckel av misstag har skickats till någon skapar du en ny och lägger in dess publika nyckel.

### Kan jag ansluta med ett lösenord?

Din server öppnas med SSH-nyckel, den säkraste metoden: en nyckel går inte att gissa och skickas aldrig runt. Lägg in en nyckel per person, så behåller var och en sin egen åtkomst.
