SSH #
Osnova cvičení #
- SSH
- SCP
- VS Code remoting
- tmux
Příprava vlastního počítače #
Windows: Zkontrolujte, že máte v terminálu (mimo WSL) dostupný příkaz ssh (ssh -V). Pokud ne, je třeba SSH klienta nainstalovat,
buď přes část “Optional features” v nastavení (“OpenSSH Client”) nebo tak, že otevřete PowerShell (pozor, ne cmd) a v něm spustíte následující příkaz:
Add-WindowsCapability -Online -Name "OpenSSH.Client~~~~0.0.1.0"
SSH #
-
Připojte se k SSH serveru postel.felk.cvut.cz, pomocí
ssh <username>@postel.felk.cvut.cz.- Pokud dostanete prompt
The authenticity of host ... can't be established., potvrďte napsáním “yes”. - Následně zadejte ČVUT heslo.
- Pokud dostanete prompt
-
Vyzkoušejte si pohyb filesystemem a sdílení souborů. Zkuste např. v
/tmpvytvořit soubor a sdělit jméno souboru kolegovi, který ho může přečíst. -
Zkuste se znovu připojit, již byste neměli dostat varování o neznámém serveru.
-
Podívejte se do
~/.ssh/known_hosts, zkuste libovolně upravit řádek začínajícípostel.felk.cvut.cza znovu se připojit. Následně řádek smažte. -
Lokálně (na vašem počítači, ne na serveru
postel) si vygenerujte nový SSH klíč pomocíssh-keygen -t ed25519, ponechte výchozí cestu.- Tento příkaz vytvoří 2 soubory ve složce
~/.ssh(na WindowsC:\Users\<username>\.ssh),id_ed25519aid_ed25519.pub. První ze souborů je váš soukromý klíč (ten byste neměli nikdy nikde sdílet), druhý (s příponou.pub) je veřejný klíč. - Pokud se teď zkusíte znovu připojit, nebude to fungovat, server váš klíč ješte nezná.
- Tento příkaz vytvoří 2 soubory ve složce
-
Na serveru
postelvytvořte složku~/.ssh(pokud neexistuje), následně do souboru~/.ssh/authorized_keyszkopírujte váš veřejný klíč ze souboru*.pub. Pokud neradi používáte terminálové textové editory, můžete klíč přidat treba pomocí příkazuecho "<vas verejny klic>" >> ~/.ssh/authorized_keys. Pro kontrolu, váš veřejný klíč by měl vypadat cca takto:ssh-ed25519 AAAAC3NzaC1lZ...RVwS+fm <username>@<machine-name> -
Nyní se zkuste připojit v novém okně terminálu, po zadání
ssh <username>@postel.felk.cvut.czuž by po vás server neměl znovu chtít heslo.- Pro více informací o spojení a autorizaci se může hodit přepínač
-v(lze opakovat pro více informací,-v,-vv,-vvv).
- Pro více informací o spojení a autorizaci se může hodit přepínač
-
Nyní si otevřete
~/.ssh/config(vytvořte pokud neexistuje), na WindowsC:\Users\<username>\.ssh\config. Toto je konfigurační soubor vašeho SSH klienta. -
Zkuste si vytvořit alias pro server postel.felk.cvut.cz přidáním následujícího bloku:
Host fel_postel HostName postel.felk.cvut.cz User <username> -
Nyní se zkuste připojit pomocí
ssh fel_postel. -
Zkuste se skrz server
postelpripojit na nekterý z počítačů v interní síti, např. strojk23-remotes IP adresou192.168.223.223:ssh kafkamat@192.168.223.223 -J fel_postel -
Vytvořte si alias
fel_k23-remote, kterým se připojíte ke strojik23-remoteskrze serverpostel(direktivaProxyJump):Host fel_k23-remote HostName 192.168.223.223 User <username> ProxyJump fel_postel -
Zkuste se připojit na jeden z počítačů v učebně (požádejte některého ze spolužáků o IP adresu).
-
Zkuste pomocí ssh přímo spustit příkaz na serveru:
ssh fel_postel ls
SCP #
-
Zkuste si pomocí
scpnahrát libovolný soubor na serverpostel:scp ./lokalni_soubor fel_postel:./nahrany_soubor -
Zkuste si soubor stáhnout zpět na váš lokální počítač:
scp fel_postel:./nahrany_soubor . -
Soubor ze serveru smažte (pomocí ssh):
ssh fel_postel rm ./nahrany_soubor
VS Code remoting #
VS Code se umí pomocí SSH připojit na jiný počítač a automaticky synchronizuje všechny změny v souborech a spouští všechny nástroje vzdáleně.
Následujte ukázku vyučujícího a připojte se na stroj fel_k23-remote pomocí VS Code.
tmux #
Základní příkazy:
- Vytvoření nové instance:
tmux, případnětmux new -s <nazev> - Připojení k existující session:
tmux attach, případnětmux attach -t <nazev> - Automatické vytvoření (pokud neexistuje) a připojení:
tmux new -A -s <nazev>
Základní klávesové zkratky:
Ctrl-b: přepnutí do ovládacího modu (podobně jakovim)Ctrl-b d: odpojení od sessionCtrl-b c: vytvoření nového oknaCtrl-b <0-9>: přepnutí na okno s daným číslemCtrl-b PgUp: page-upCtrl-b PgDn: page-downCtrl-b [ Ctrl-s: hledání (n/Npro předchozí/následující výsledek)Ctrl-b :: zadávání tmux příkazů, např.set -g mouse onpro podporu scrollování myší