# Σύνδεση

## Το κλειδί SSH σας

Το VPS Ultra σας με Linux ανοίγει με το **κλειδί SSH** σας: ένα ζεύγος αρχείων που δημιουργείται στον υπολογιστή σας. Το **δημόσιο** μέρος εγκαθίσταται στον διακομιστή· το **ιδιωτικό** μέρος μένει στον υπολογιστή σας και δεν το δίνετε σε κανέναν, ούτε στην ομάδα μας.

Σε macOS, Linux και Windows 10 ή 11 (PowerShell ή Τερματικό):

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

Αποδεχτείτε την προτεινόμενη θέση και επιλέξτε μια φράση πρόσβασης. Το δημόσιο κλειδί σας είναι το αρχείο `id_ed25519.pub`: μία γραμμή που αρχίζει με `ssh-ed25519`. Στείλτε το στην ομάδα μας κατά την παραγγελία: το εγκαθιστούμε στον διακομιστή σας κατά την προετοιμασία του.

## Σύνδεση μέσω SSH

Η κάρτα του διακομιστή σας, στην ενότητα **VPS** του πελατειακού σας χώρου, εμφανίζει την εντολή **Σύνδεση SSH**:

```
ssh root@203.0.113.20
```

Ο διακομιστής σας έχει τη δική του διεύθυνση IPv4: η σύνδεση γίνεται στη συνήθη θύρα SSH, την 22, ή σε αυτήν που επιλέγετε στο `/etc/ssh/sshd_config`. Μόλις το όνομα τομέα σας δείχνει στον διακομιστή σας, λειτουργεί και το όνομά του: `ssh root@app.etaireia-mou.gr`.

### Μια συντόμευση: το αρχείο \~/.ssh/config

```
Host monultra

    HostName 203.0.113.20

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Στη συνέχεια, αρκεί το `ssh monultra`, και η ίδια συντόμευση χρησιμεύει για τα `scp`, `rsync`, `git` και τον επεξεργαστή κώδικά σας.

## Προσθήκη ή αντικατάσταση κλειδιού

Τα κλειδιά του διακομιστή σας βρίσκονται στο `/root/.ssh/authorized_keys`, ένα ανά γραμμή, και τα διαχειρίζεστε εσείς:

* **προσθήκη συναδέλφου**: επικολλήστε το δημόσιο κλειδί του σε μια νέα γραμμή του αρχείου, ή δημιουργήστε του δικό του λογαριασμό (`adduser`) με το κλειδί του στο `/home/<ο λογαριασμός του>/.ssh/authorized_keys`
* **αφαίρεση πρόσβασης**: διαγράψτε τη γραμμή του
* **αλλαγή υπολογιστή**: προσθέστε το νέο δημόσιο κλειδί σας πριν αφαιρέσετε το παλιό.

Χάθηκε το ιδιωτικό κλειδί σας και κανένα κλειδί δεν σας ανοίγει πλέον τον διακομιστή; Στείλτε το νέο δημόσιο κλειδί σας στην υποστήριξη: η ομάδα μας το εγκαθιστά στον διακομιστή σας.

## Μεταφορά αρχείων

```
# ένα αρχείο, προς τον διακομιστή

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



# ένας φάκελος, συγχρονισμένος

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

Τα προγράμματα SFTP, όπως το FileZilla ή το WinSCP, συνδέονται μέσω **SFTP**, με τη διεύθυνση του διακομιστή σας και το ιδιωτικό κλειδί σας.

## Εργασία από τον επεξεργαστή κώδικά σας

Η επέκταση **Remote - SSH** του Visual Studio Code ανοίγει τους φακέλους του διακομιστή σας σαν να βρίσκονταν στον υπολογιστή σας: διαβάζει το αρχείο σας `~/.ssh/config`, και αρκεί να επιλέξετε `monultra`. Οι επεξεργαστές της JetBrains προσφέρουν την ίδια σύνδεση μέσω του **Remote Development**.

## Windows Server: η Απομακρυσμένη επιφάνεια εργασίας

Ένα VPS Ultra με Windows Server ανοίγει μέσω της **Απομακρυσμένης επιφάνειας εργασίας** (RDP):

1. Στα Windows, εκκινήστε τη **Σύνδεση απομακρυσμένης επιφάνειας εργασίας** (`mstsc`)· σε macOS, την εφαρμογή **Windows App** της Microsoft· σε Linux, το Remmina.
2. Εισαγάγετε τη διεύθυνση IPv4 του διακομιστή σας, που εμφανίζεται στην κάρτα του.
3. Συνδεθείτε με τον λογαριασμό διαχειριστή που σας παρέδωσε η ομάδα μας κατά την παράδοση, και έπειτα αλλάξτε τον κωδικό πρόσβασής του στην πρώτη συνεδρία.

Προστατέψτε στη συνέχεια την πρόσβασή σας: έναν μακρύ και μοναδικό κωδικό πρόσβασης, και την Απομακρυσμένη επιφάνεια εργασίας περιορισμένη στις διευθύνσεις σας στο τείχος προστασίας των Windows.

## Συχνές ερωτήσεις

### «Permission denied (publickey)»: τι να ελέγξω;

1. Το κλειδί που χρησιμοποιείτε είναι αυτό που μας στείλατε: το `ssh-keygen -lf ~/.ssh/id_ed25519.pub` εμφανίζει το αποτύπωμά του.
2. Η εντολή σας χρησιμοποιεί τον χρήστη `root` και τη διεύθυνση της κάρτας σας.
3. Αν το κλειδί σας έχει άλλο όνομα, δηλώστε το: `ssh -i ~/.ssh/ma_cle root@...`.

Περιγράψτε έπειτα την κατάσταση στην υποστήριξη, με την εντολή που εκτελέσατε και το μήνυμα που λάβατε: η Ολοκληρωμένη υποστήριξη σας βοηθά να αποκαταστήσετε την πρόσβαση.

### Η σύνδεσή μου διακόπτεται όταν μένω ανενεργός.

Προσθέστε `ServerAliveInterval 60` στο τμήμα σας στο `~/.ssh/config`, και εκτελείτε τις μακροσκελείς εντολές μέσα σε `tmux` ή `screen`, που τις κρατούν ζωντανές ακόμη και αν αποσυνδεθείτε.
