# Połączenie z serwerem

## Klucz SSH

VPS Ultra z Linuksem otwiera się Państwa **kluczem SSH**: to para plików utworzona na Państwa komputerze. Część **publiczna** trafia na serwer; część **prywatna** pozostaje na komputerze i nie jest nikomu przekazywana, także naszemu zespołowi.

W systemach macOS, Linux oraz Windows 10 lub 11 (PowerShell lub Terminal):

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

Proszę zaakceptować proponowaną lokalizację i wybrać hasło chroniące klucz. Klucz publiczny to plik `id_ed25519.pub`: jeden wiersz zaczynający się od `ssh-ed25519`. Prosimy przekazać go naszemu zespołowi przy zamówieniu: zainstalujemy go na serwerze podczas jego przygotowania.

## Połączenie przez SSH

Karta serwera, w sekcji **VPS** panelu klienta, wyświetla polecenie **Połączenie SSH**:

```
ssh root@203.0.113.20
```

Serwer ma własny adres IPv4: połączenie odbywa się na standardowym porcie SSH, 22, lub na porcie wybranym przez Państwa w `/etc/ssh/sshd_config`. Gdy domena wskazuje już na serwer, działa też jego nazwa: `ssh root@app.moja-firma.pl`.

### Skrót: plik \~/.ssh/config

```
Host monultra

    HostName 203.0.113.20

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Od tej chwili wystarczy `ssh monultra`, a ten sam skrót działa w `scp`, `rsync`, `git` i Państwa edytorze.

## Dodawanie lub zastępowanie klucza

Klucze serwera znajdują się w `/root/.ssh/authorized_keys`, po jednym w wierszu, i zarządzają nimi Państwo samodzielnie:

* **dodanie współpracownika**: proszę wkleić jego klucz publiczny w nowym wierszu pliku albo utworzyć mu własne konto (`adduser`) z kluczem w `/home/<nazwa konta>/.ssh/authorized_keys`;
* **odebranie dostępu**: proszę usunąć jego wiersz;
* **zmiana komputera**: proszę dodać nowy klucz publiczny, zanim usuną Państwo stary.

Klucz prywatny zniknął i żaden klucz nie otwiera już serwera? Prosimy przesłać nowy klucz publiczny do wsparcia: nasz zespół zainstaluje go na serwerze.

## Przesyłanie plików

```
# jeden plik, na serwer

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



# folder, synchronizowany

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

Programy SFTP, takie jak FileZilla czy WinSCP, łączą się przez **SFTP**, z adresem serwera i Państwa kluczem prywatnym.

## Praca z poziomu edytora

Rozszerzenie **Remote - SSH** do Visual Studio Code otwiera foldery serwera tak, jakby były na Państwa komputerze: odczytuje plik `~/.ssh/config`, wystarczy wybrać `monultra`. Edytory JetBrains oferują to samo połączenie przez **Remote Development**.

## Windows Server: Pulpit zdalny

VPS Ultra z Windows Server otwiera się przez **Pulpit zdalny** (RDP):

1. Uruchomić **Podłączanie pulpitu zdalnego** (`mstsc`) w systemie Windows, aplikację **Windows App** firmy Microsoft w macOS albo Remmina w Linuksie.
2. Podać adres IPv4 serwera, wyświetlany na jego karcie.
3. Zalogować się kontem administratora przekazanym przez nasz zespół przy dostawie, a następnie zmienić jego hasło podczas pierwszej sesji.

Następnie warto zabezpieczyć dostęp: długie i unikalne hasło oraz Pulpit zdalny ograniczony do Państwa adresów w zaporze systemu Windows.

## Najczęstsze pytania

### „Permission denied (publickey)”: co sprawdzić?

1. Używany klucz to ten, który nam Państwo przekazali: `ssh-keygen -lf ~/.ssh/id_ed25519.pub` wyświetla jego odcisk.
2. Polecenie wskazuje użytkownika `root` i adres z karty.
3. Jeśli klucz ma inną nazwę, należy go wskazać: `ssh -i ~/.ssh/ma_cle root@...`.

Następnie prosimy opisać sytuację wsparciu, podając uruchomione polecenie i otrzymany komunikat: Kompleksowe wsparcie pomoże przywrócić dostęp.

### Połączenie zrywa się, gdy jestem nieaktywny.

Proszę dodać `ServerAliveInterval 60` do swojego bloku w `~/.ssh/config`, a długie polecenia uruchamiać w `tmux` lub `screen`, które utrzymują je przy życiu nawet po rozłączeniu.
