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
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:
~/.ssh/
). Pokud si generujete svůj první klíč, použijte celé výchozí jméno.
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
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`
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.
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
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, 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
.