# Collegarsi in SSH

Il Suo VPS Pro si apre con la Sua **chiave SSH**: una coppia di file creata sul Suo computer, di cui registra la parte **pubblica** nella Sua area clienti. La parte **privata** resta sul Suo computer e non si trasmette a nessuno, nemmeno al nostro team.

## Creare la Sua chiave

Su macOS, Linux e Windows 10 o 11 (PowerShell o il Terminale), un solo comando:

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

Accetti la posizione proposta, e scelga una passphrase per proteggere la chiave. Nella cartella `.ssh` del Suo account compaiono due file:

* `id_ed25519`: la Sua chiave **privata**, che resta presso di Lei;
* `id_ed25519.pub`: la Sua chiave **pubblica**, quella che registra. Sta su una sola riga, che inizia con `ssh-ed25519`.

Per mostrare la chiave pubblica e copiarla:

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

## Registrare la Sua chiave nell'area clienti

1. Apra [my.simafri.com](https://my.simafri.com/), sezione **VPS**.
2. Nella scheda del Suo server, incolli la Sua chiave pubblica in **Le Sue chiavi pubbliche, una per riga**.
3. Faccia clic su **Salva le chiavi**.

La Sua chiave viene installata sul server entro un minuto, e la scheda lo indica: **Installate sul server il** seguito dalla data, con l'impronta di ogni chiave (`SHA256:...`, la stessa che mostra `ssh-keygen -lf ~/.ssh/id_ed25519.pub`). Se la registra durante la preparazione del server, la chiave viene installata alla sua creazione.

Utile sapere:

* fino a **10 chiavi** per server, una per persona o per computer;
* tipi accettati: **ed25519**, **RSA** di almeno 2048 bit, **ECDSA**, e le chiavi di sicurezza hardware (`sk-ssh-ed25519`, `sk-ecdsa`); è accettato anche il formato PuTTYgen;
* ogni salvataggio **sostituisce** l'insieme delle chiavi registrate: incolli tutte quelle da mantenere;
* il proprietario dell'account e i **gestori** registrano le chiavi; un **operatore** le consulta (veda [Membri e ruoli](https://docs.simafri.com/it/espace-client/membres-et-roles/)).

Le chiavi registrate dall'area clienti occupano un blocco a sé del file `/root/.ssh/authorized_keys`, tra due righe di riferimento `my.simafri.com`. Il resto del file Le appartiene: una chiave che vi aggiunge Lei stesso, fuori da questo blocco, resta al suo posto.

## Collegarsi

La scheda del Suo server mostra il comando **Connessione SSH**, pronto da copiare:

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

La porta, tra 22100 e 22999, è propria del Suo server: riprenda quella della Sua scheda. Anche il nome del Suo server funziona al posto dell'indirizzo:

```
ssh -p 22101 root@app.mia-azienda.it
```

Per un server il cui nome è sotto il Suo dominio, questo nome risponde non appena il Suo record DNS designa il Suo server (veda [Mettere online un sito o un'applicazione](/it/vps-pro/mettre-en-ligne.md)).

### In IPv6

Se la Sua connessione Internet dispone dell'IPv6, raggiunge il Suo server anche direttamente tramite il suo indirizzo IPv6, mostrato nella scheda, sulla porta SSH abituale:

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

### Una scorciatoia: il file \~/.ssh/config

Per non dover più digitare la porta e l'indirizzo, aggiunga un blocco al Suo file `~/.ssh/config`:

```
Host miovps

    HostName app.mia-azienda.it

    Port 22101

    User root

    IdentityFile ~/.ssh/id_ed25519
```

A quel punto basta `ssh miovps`, e la stessa scorciatoia serve a `scp`, `rsync`, `git` e al Suo editor.

## Da Windows

Windows 10 e 11 includono il client OpenSSH: apra PowerShell o il Terminale e incolli il comando della Sua scheda. Il Suo file di scorciatoie si trova in `C:\Users\<il Suo nome>\.ssh\config`.

Con **PuTTY**, inserisca l'indirizzo e la porta della Sua scheda in **Session**, l'utente `root` in **Connection > Data**, e la Sua chiave privata in formato `.ppk` in **Connection > SSH > Auth > Credentials**. La chiave pubblica mostrata da PuTTYgen si registra così com'è nella Sua area clienti.

## Trasferire file

Con la stessa porta e la stessa chiave:

```
# un file, verso il server

scp -P 22101 archive.tar.gz root@app.mia-azienda.it:/srv/



# una cartella, sincronizzata

rsync -avz -e "ssh -p 22101" ./build/ root@app.mia-azienda.it:/var/www/app/
```

`scp` prende la porta con una **P maiuscola**. I programmi SFTP come FileZilla o WinSCP si collegano in **SFTP**, con l'indirizzo, la porta e la chiave privata del Suo computer.

## Lavorare dal Suo editor

L'estensione **Remote - SSH** di Visual Studio Code apre le cartelle del Suo server come se fossero sul Suo computer: legge il Suo file `~/.ssh/config`, basta scegliere `miovps`. Gli editor JetBrains offrono la stessa connessione tramite **Remote Development**.

## Dare accesso a un collega

Due modi di procedere, secondo ciò che vuole affidargli:

* **un accesso da amministratore**: aggiunga la sua chiave pubblica accanto alla Sua in **Le Sue chiavi pubbliche, una per riga**, poi **Salva le chiavi**;
* **un accesso limitato**: gli crei un account sul server, con la sua chiave:

```
adduser camille

mkdir -p /home/camille/.ssh

nano /home/camille/.ssh/authorized_keys   # incolli la sua chiave pubblica

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

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

Per revocare un accesso, salvi l'elenco delle chiavi senza la sua, oppure elimini il suo account con `deluser camille`.

## Sostituire una chiave persa

Ha cambiato computer o la Sua chiave privata è scomparsa: crei una nuova chiave con `ssh-keygen -t ed25519`, poi registri la nuova chiave pubblica nella Sua scheda, togliendo quella vecchia. Viene installata entro un minuto, e Lei ritrova l'accesso al Suo server.

## Il Suo assistente IA

Un assistente IA collegato alla Sua area clienti Simafri (server MCP `https://mcp.simafri.com/v1/mcp`) legge i Suoi server, il loro stato, i loro indirizzi e il loro comando di connessione, e registra le Sue chiavi **pubbliche** per Lei, con i diritti della persona connessa. Una chiave privata viene rifiutata, come nell'area clienti.

## Domande frequenti

### «Permission denied (publickey)»: che cosa verificare?

1. La scheda del Suo server indica **Installate sul server il** seguito da una data.
2. L'impronta mostrata nella scheda è quella della Sua chiave: `ssh-keygen -lf ~/.ssh/id_ed25519.pub`.
3. Il Suo comando indica proprio la porta della Sua scheda, e l'utente `root`.
4. Se la Sua chiave ha un altro nome, la indichi: `ssh -i ~/.ssh/mia_chiave -p 22101 root@...`.

Descriva poi la situazione al supporto, con il comando eseguito e il messaggio ottenuto: l'Assistenza integrale La aiuta a ripristinare l'accesso.

### La mia connessione si interrompe quando resto inattivo.

Aggiunga `ServerAliveInterval 60` al Suo blocco in `~/.ssh/config`: il Suo computer mantiene viva la connessione. Esegua un comando lungo in `tmux` o `screen`, che lo mantengono attivo anche dopo la disconnessione.

### L'area clienti indica «Questo testo contiene una chiave PRIVATA».

Ha incollato il file senza `.pub`. Incolli il contenuto del file che termina con `.pub`. Se la Sua chiave privata è stata inviata per errore a qualcuno, ne crei una nuova e registri la sua chiave pubblica.

### Posso collegarmi con una password?

Il Suo server si apre con la chiave SSH, il metodo più sicuro: una chiave non si indovina e non circola mai. Registri una chiave per persona, e ognuna mantiene il proprio accesso.
