Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

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: 2021/04/20 13:55 by prudemar