Warning
This page is located in archive.

Vzdálený přístup

Hlavním nástrojem pro vzdálený přístup do školy je v rámci předmětu APO protokol SSH (Secure Shell), který zajišťuje zabezpečený přístup ke vzdálené příkazové řádce, přenos souborů ale i možnost spuštění vzdálených grafických aplikací. Na UNIX-like systémech včetně GNU/Linux nebo Mac můžete využít stejnojmenného programu ssh. Na OS Windows pak doporučujeme program Putty

Pomocí obou nástrojů je možné se připojit k serveru postel.felk.cvut.cz, na kterém se nacházejí nástroje pro klasickou i křížovou kompilaci, je zde k dispozici simulátor QtMips a jsou zde také uložené zdrojové kódy k ukázkám napříč cvičeními.

Pro přenos souborů lze pak použít protokol SCP případně jiné klienty podporující SCP/SFTP protokol.

Pomocí programu ssh se k serveru připojíte s využitím vašeho ČVUT loginu a ČVUT Hesla následujícím příkazem:

ssh vas_login@postel.felk.cvut.cz

V případě velké vytíženosti serveru nebo pokud plánujete spouštět náročnější úlohy, nepoužívejte přímo bránu pro vzdálený přístup (virtuální server postel), ale spusťte si některý z počítačů v laboratoři. K napojení přístupu na počítač slouží na bráně konto student s generickým heslem xxx.

ssh student@postel.felk.cvut.cz

Poté budete vyzváni k uvedení Vašeho uživatelského jména a výběru laboratoře, ze které Vám bude nabídnutý aktuálně nejméně vytížený stroj. Více na stránce Vzdálený přístup do laboratoří IT Oddělení K13135

SSH klíče

Bezpečnější a rychleší volba než používání hesla je použití SSH klíče. Jeho veřejná část musí být k dispozici na cílovém serveru a spárována s vašim účtem. Soukromá část pak musí být držena v tajnosti a neměla by opustit Vás počítač/počítače. K přistupu na postel.felk.cvut.cz můžete využít svůj stávající klíč nebo si vygenerovat klíč nový.

Obě součásti jednoho klíče si vygenerujete příkazem:

ssh-keygen

Vzhledem k tomu, že příkaz může defautně vygenerovat pouze 2048 bitové RSA, doporučuje autor tohoto článku použít moderní eliptickou křivku pomocí příkazu

ssh-keygen -t ed25519

Nebo alespoň 4096 bit RSA pomocí:

ssh-keygen -b 4096

Všechny varianty příkazu se Vás zeptají na 2 otázky:

  1. kam klíč uložit - doporučujeme použít výchozí adresář (~/.ssh/). Pokud si generujete svůj první klíč, použijte celé výchozí jméno.
  2. heslo k privatní části vašeho klíče. Privátní část totiž může být zašifrována i v rámci vašeho počítače. Pokud heslo nezadáte, klíč zůstane bez hesla. Pokud věříte, že je váš počítač bezpečné místo, heslo skutečně zadávat nemusíte. Pokud se heslo zadat rozhodnete, tak z důvodu bezpečnosti nemusí být vidět počet znaků, které zadáváte.

Symbol ~ je zkratka pro Váš domácí adresář. Obě části klíče tedy máte ve vychozím nastavení uložené do složky .ssh ve svém domácím adresáři.

Nyní můžete veřejnou část klíče přesunout na server a spárovat se svým účtem příkazem:

ssh-copy-id vas_login@postel.felk.cvut.cz

Nástroje okolo SSH hledají klíče standartně v adresáři ~/.ssh/. Pokud jste při tvorbě klíče zvolili jiný soubor v jiném adresáři, můžete ho definovat pomocí přepínače -i: (je jedno, jestli veřejnou nebo privátní část - program vždy odešle tu správnou)

ssh-copy-id -i cesta/k/souboru/s/klicem vas_login@postel.felk.cvut.cz

Od této chvíle by mělo být (až na vyjímky zpusobené kontrolou, zda jste stále studentem) možné se na server přihlašovat bez ČVUT hesla, jen s pomocí SSH klíče.

Pokud jste klíč z nějakého důvodu uložili na nestandartní místo, nestandartně pojmenovali nebo používáte jiný, speciální klíč, je nutné při připojení zadat plnou cestu ke klíč pomocí přepínače -i:

ssh -i cesta/k/souboru/s/klicem vas_login@postel.felk.cvut.cz

SSH Agent

Pokud jste si při tvorbě klíče zvolili heslo, musíte ho ve výchozím stavu zadat pokaždé když klíč použijete při připojení ke vzdálenému serveru. Pokud se k serveru připojujete často, může to být poněkud otravné. Abyste heslo nemuseli zadávat vždy, můžete si klíč v rámci svého počítače dočasně bezpečně nahrát do SSH agenta. Heslo tedy zadáte jen při nahrání klíče do agenta a pokaždé, kdy je pak potřeba, se použije již to dešifrované. Dešifrovaný klíč se z agenta odstraní při jeho ukončení, tedy například při vypnutí počítače.

Klíče z výchozího adresáře ~/.ssh/ do agenta nahrajete příkazem:

ssh-add

Případně specifikujete cestu ke klíči:

ssh-add cesta/k/souboru/s/klicem

Příkazem ssh-add -l pak zjistíte, jaké klíče máte v agentovi momentálně nahrané.

Pokud by výše zmíněné příkazy (ssh-add…) nefungovaly a hlásily chyby typu:

Could not open a connection to your authentication agent

je třeba agenta zapnout. Tohle se stává častěji při použití windows subsystem for Linux. Agenta zapnete pomocí:

eval `ssh-agent -s`

Další využití SSH klíče

SSH klíč můžete kromě přístupu na server postel.felk.cvut.cz použít i například k přístupu ke školnímu GITu - viz. návod jak přidat osobní SSH klíč ke školnímu GITu (do gitlabu).

Pokud máte svůj SSH klíč nahraný v SSH agentovi, můžete pak agenta “forwardovat” i při SSH spojení do školy (nebo jinam) pomocí přepínače -A:

ssh -A vas_login@postel.felk.cvut.cz

Pokud jste svůj osobní SSH klíč přidali i ke školnímu GITu, můžete tak s forwardovaným agentem klonovat a jinak používat své školní GITové repozitáře i ze serveru postel.

SSH klíč je také možné použít pro přístup k deskám MZ_APO, které jsou součástí semestrální práce zadané ve druhé půlce semestru. K přístupu k deskám však nemůžete použít svůj osobní SSH klíč (vygenerovaný pomoci ssh-keygen) ale pouze SSH klíč uložený na serveru postel v souboru /opt/zynq/ssh-connect/mzapo-root-key. Tento klíč je tedy na serveru postel také možné nahrát do SSH agenta:

ssh-add /opt/zynq/ssh-connect/mzapo-root-key

Klíč je možné do SSH agenta nahrát pouze pokud je aktivní, to znamená že jste například při připojování k serveru použili v příkazu SSH parametr -A. Více informací o přístupu k deskám MZ_APO najdete v Nápovědě k práci s přípravkem MicroZed APO.

Klíč pro přístup k deskám si můžete zkopírovat i do svého počítače - např. nástrojem secure copy - scp, který také využívá protokol SSH:

scp vas_login@postel.felk.cvut.cz:/opt/zynq/ssh-connect/mzapo-root-key .

Autor tohoto článku například obvykle pracuje tak, že si po zapnutí svého počítače nahraje do SSH agenta své osobní klíče a například i klíč pro přístup k deskám MZ_APO. Agenta pak forwarduje i při připojení do školy. Nemusí tak řešit zadávání hesel při přístupech přes SSH do školy, ke školnímu GITu nebo při nahrávání programu do zmíněných desek. Více informací o tom, jak klíč pro přístup k deskám stáhnout a nastavit mu správná práva najdete zde.

Mapování lokálních adresářů na vzdálené adresáře

Celé vaše uživatelské konto na serveru postel.felk.cvut.cz je možné si namapovat na lokální adresář ve vašem GNU/Linux systému přes utilitu sshfs. Budete k tomu potřebovat pouze prázdný lokání adresář. Celé spojení je na bázi SSH, využijete k němu tedy ty stejné přihlašovací údaje nebo klíče jako v klasickém SSH spojení.

Před prvním spojením je vhodné si připravit prázdnou složku například v domácím adresáři:

mkdir remote_home

Pak lokální složku napojíte na domácí složku na vzdáleném serveru:

sshfs vas_login@postel.felk.cvut.cz: remote_home

Odpojení konta se dá provést příkazem:

fusermount -u remote_home

Spouštění vzdálených grafických aplikací

Grafické aplikace přímo na serveru postel.felk.cvut.cz pouštějte jen, pokud se jedná o nějakou drobnost - například pro vyzkoušení. Ze systémů podporujících standardizovaný protokol X-windows (nebo při použití jeho emulátoru) je možné vzdáleně spustit grafickou aplikaci tak, aby se její grafický výstup přesměroval na váš monitor. Při spuštěním SSH relace se o protunelování grafického protokolu požádá parametrem -X(velké X) přidaným k příkazu ssh. Následně můžete pomocí SSH pustit grafickou aplikaci na vzdáleném serveru (například simulátor QtMips) a okno se zobrazí u vás na monitoru.

ssh -X vas_login@postel.felk.cvut.cz

Spuštění simulátoru:

qtmips_gui

K provozu vzdálené grafické aplikace je třeba poměrně dobré internetové spojení se školním serverem. Spolehlivější variantou je tedy mít simulátor nainstalovaný u sebe na počítači.

Pro jakékoliv aplikace zatěžující vzdálený počítač je ale doporučený postup spuštění některého počítače ve studentských laboratořích - viz. úvod této stránky.

Alternativní možnosti spouštění vzdálených grafických aplikací

Alternativní možnosti, které jsou šetrnější k šířce pásma dat pro relaci GUI a které je možné použít ze strany systémů, které obvyklé standardy nepodporují (Windows), jsou protokoly xpra a spice. Pro jejich využití si vždy musíte pustit jeden z počítačů v laboratořích a nepoužívat bránu pro přístup (server postel.felk.cvut.cz).

K přístupu přes xpra nainstalujte balíček, pro Debian nebo Ubuntu to lze udělat

apt install xpra 

Potřebujete verzi 3.0 a pozdější, která podporuje přihlašovací protokol SSH→SSH. Peo starší distribuce Debian nebo Ubuntu lze balíček získat z bacports

echo "deb http://ftp.cz.debian.org/debian buster-backports main contrib non-free" | \
  sudo cat >/etc/apt/sources.list.d/debian-backports.list
sudo apt update
sudo apt install -t buster-backports xpra

Na laboratorním počítadle zkontrolujte, zda je již pro Váš účet spuštěné grafické sezení

remote-desktop list

Pokud ne, spusťe si grafické sezení

remote-desktop start xpra

Poznamenejte si číslo displeje a vložte jej do dialogového okna připojení Xpra.

K vašim datům na svých laboratorních účtech máte přístup prostřednictvím serveru postel.

courses/b35apo/documentation/remote/start.txt · Last modified: 2024/02/02 18:41 (external edit)