Problem Set #5: Into the Clouds

o konfigurácii virtuálnych strojov, inštalácii Docker-u a vzdialenom prístupe

Vytvorenie virtuálneho stroja

Na stránke https://cloud.tuke.sk si požiadajte o vytvorenie virtuálneho servera s OS Linux.

Windows Only: Open SSH Client

Vzdialený používateľ

Pripojiť sa na vzdialený stroj môžete pomocou protokolu SSH ako používateľ root napríklad týmto príkazom:

$ ssh root@HOST_IP

Pracovať však ako používateľ root nie je dobrý a ani bezpečný prístup. Miesto toho vytvoríme na vzdialenom stroji používateľa maker, ktorého budeme používať. Používateľa vytvoríme týmto príkazom:

$ adduser maker

Okrem toho pridáme tohto používateľa do skupiny sudo, aby mohol spúšťať príkazy s právami superpoužívateľa:

$ usermod --append --groups sudo maker

Heslo nastavíte používateľovi maker príkazom:

$ passwd maker

Prihlasovanie sa pomocou SSH kľúčov

Pre vzdialené prihlasovanie sa často používajú SSH kľúče, čo je jednoduchšie a aj bezpečnejšie riešenie ako používať heslo.

Najprv SSH kľúče vytvoríme na lokálnom počítači:

$ ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/mirek/.ssh/id_ed25519): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/mirek/.ssh/id_ed25519
Your public key has been saved in /home/mirek/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:T7oig3qF44USkI899tB4IyG0O3IIR9fSgUcVJp3hsrg mirek@fedora
The key's randomart image is:
+--[ED25519 256]--+
|.o. .=++=+       |
|+.o.o ++o        |
|o*.+ o. .        |
|+oX +. o         |
|o=.O... S .      |
|o.= +.   +       |
| o =E   . .      |
|  + o .  .       |
|.o   o ..        |
+----[SHA256]-----+

V priečinku ~/.ssh/ sa vytvorili dva súbory:

  • id_ed25519 - súkromný kľúč, a
  • id_ed25519.pub - verejný kľúč

Následne prekopírujte SSH kľúč na vzdialený server príkazom:

$ ssh-copy-id maker@HOST_IP -i ~/.ssh/id_ed25519

Ak ste postupovali správne, budete sa môcť pripojiť bez hesla. Stačí napísať príkaz:

$ ssh maker@HOST_IP

V prípade, že používate viacero SSH kľúčov, môžete pri prihlasovaní sa na diaľku príslušný SSH kľúč zvoliť voľbou -i takto:

$ ssh maker@HOST_IP -i ~/.ssh/id_ed25519

Vzdialený prístup pomocou VS Code

Na vzdialený server sa viete pripojiť pomocou protokolu SSH. Ako SSH klienta môžete s výhodou využiť vývojové prostredie VS Code. Na to je však potrebných niekoľko krokov.

Rozšírenie Remote Development

Najprv si do VS Code nainštalujte rozšírenie Remote Development.

Windows only: Open SSH Client

Konfigurácia vzdialeného pripojenia

Nakoniec zostáva už len konfigurácia vzdialeného pripojenia:

  1. V bočnom paneli kliknite na ikonu Remote Explorer

  2. Z komba v paneli vyberte Remotes (Tunnels/SSH)

  3. Kliknite na ozubené koliesko (Open SSH Config File) pri (prázdnom) zoznam SSH

  4. Zvoľte si používateľský konfiguračný súbor (prvá položka zoznamu), napr. pre používateľov OS Linux to bude cesta v tvare /home/your-user/.ssh/config

  5. Do konfiguračného súboru vložte nasledujúce riadky:

    Host uvt_virtual
        HostName HOST_IP
        User maker
    
        # If you have SSH key, you can use it:
        # Windows users will write:
        # IdentityFile "C:\Users\jano\.ssh\id_ed25519"
        # Linux users will write:
        # IdentityFile "~/.ssh/id_ed25519"

Preventívne obnovte zoznam vzdialených spojení kliknutím na ikonku Refresh nachádzajúcu sa na vrchu bočného panela Remote Explorer.

Pripojenie sa

Pripojíte sa kliknutím na jednu z dvoch možností (ikoniek) vedľa názvu vzdialeného stroja:

  • Connect in Current Window, alebo
  • Connect in New Window

Počas pripájania sa postupne potvrďte:

  • fingerprint vzdialeného stroja (stlačte Enter),
  • typ OS (vyberte Linux)

Po pripojení si otvorte v prehliadači súborov (Explorer) domovský priečinok (/home/ubuntu) a otvorte si terminál.

A môžete pracovať.

Inštalácia Docker-a

Ak budete potrebovať na virtuálnom stroji nainštalovať Docker, stačí, ked napíšete nasledovný príkaz:

$ curl -sSL https://get.docker.com/ | sh

Aby ste mohli docker používať aj ako používateľ maker, musíte ho pridať do skupiny docker:

$ sudo usermod --append --groups docker maker 

Pre aplikovanie zmien sa odhláste a znovu prihláste.

Inštaláciu si následne môžete overiť príkazom:

$ sudo docker version
Client: Docker Engine - Community
 Version:           27.3.1
 API version:       1.47
 Go version:        go1.22.7
 Git commit:        ce12230
 Built:             Fri Sep 20 11:42:52 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          27.3.1
  API version:      1.47 (minimum version 1.24)
  Go version:       go1.22.7
  Git commit:       41ca978
  Built:            Fri Sep 20 11:41:00 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.23
  GitCommit:        57f17b0a6295a39009d861b89e3b3b87b005ca27
 runc:
  Version:          1.1.14
  GitCommit:        v1.1.14-0-g2c9f560
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0