[[!meta title="Přístup ke git repozitářům na serveru rtime"]] Přístup se děje protokolem SSH (*ssh://git@rtime.felk.cvut.cz/...*) a uživatelé jsou autorizováni výhradně pomocí SSH klíčů. Hláška "*Permission denied (publickey).*" znamená, že nemáte SSH klíče správně nastaveny. Otestovat přístup si můžete příkazem ssh git@rtime.felk.cvut.cz info Server rtime automaticky importuje veřejné klíče z vašeho školního home adresáře. Import probíhá každou celou hodinu a ve čtvrtek přes den každých **5 minut**. Za SSH veřejný klíč jsou považovány soubory odpovídající masce `~/.ssh/*.pub`. ## Generování klíčů Nejsnazší cesta jak si SSH klíč vytvořit je spustit na počítači v laboratoři (či na serveru postel.felk.cvut.cz) příkaz ssh-keygen Ten vytvoří pár klíčů (veřejný a soukromý) a ve výchozím nastavení je uloží do správného adresáře pod správným jménem. Pokud veřejný klíč kopírujete do svého domovského adresáře z jiného počítače, je nezbytně nutné, aby byla správně nastavena práva k vašemu adresáři s SSH daty. Do adresáře nesmí mít přístup nikdo jiný než vlastník. K privátnímu klíči (ten bez `*.pub`) nesmí mít přístup ostatní uživatelé. K veřejnému klíči by naopak měla být práva pro čtení nastavena pro všechny. Aktuálně nastavená práva si můžete zkontrolovat pomocí následujících příkazů: uzivatel@postel:~$ ls -ld ~/.ssh drwx------ 2 uzivatel users 136 Mar 9 12:23 /home/pisa/.ssh uzivatel@postel:~$ ls -l ~/.ssh total 16 -rw------- 1 uzivatel users 1679 Mar 9 12:23 id_rsa -rw-r--r-- 1 uzivatel users 393 Mar 9 12:23 id_rsa.pub -rw-r--r-- 1 uzivatel users 4272 Dec 7 09:39 known_hosts Zkontrolujte si vaše klíče příkazem check-ssh-key Ten upozorní na případné problémy a vypíše, které klíče budou na server `rtime` automaticky importovány. Pokud máte problém s právy k souborům či adresářům, prostudujte si dokumentaci `man chmod`. Po úspěšném importu vašeho klíče by měl výstup příkazu `check-ssh-key` vypadat zhruba následovně: Public keys in your home directory ================================== /home/sojkam1/.ssh/id_rsa.pub will be imported Server status ============= Last import run on Fri Mar 21 20:00:34 CET 2014 /home/sojkam1/.ssh/id_rsa.pub imported Doporučujeme, abyste si klíč **zašifrovali heslem** (enter a passphrase), protože pak nebude moct být váš soukromý klíč zneužit lidmi, kteří mají přístup k datům na serveru (administrátoři atd.). Pokud tak učiníte, může se vám hodit příkaz `ssh-add`, kterým klíč rozšifrujete v paměti svého počítače a až do vašeho odlogování heslo nebudete muset zadávat. ## SSH agent na serveru postel Hesla v paměti udržuje služba `ssh-agent`, která běží na počítačích v laboratořích (a i na většině běžných GNU/Linux distribucí) pro každé lokální sezení. K této službě se pro vložení klíče připojuje program `ssh-add` stejně jako si příkazy `ssh` (i při použití SSH protokolu v `git`u) si nechají touto službou podepisovat autentizační tokeny privátním klíčem. Na serveru `postel` není automaticky pro vzdálená sezení `ssh-agent` spuštěn. Je potřeba si ho pustit, zajistit nastavení proměnných prostředí `SSH_AGENT_PID` a `SSH_AGENT_SOCKET`. Toho lze docílit příkazem: eval $(ssh-agent) Při odhlášení je vhodné agenta ukončit příkazem `kill $SSH_AGENT_PID`, případně `killall ssh-agent`. Případně je možné agenta pustit na svém lokálním počítači a zajistit přeposílání požadavků na podpisy ze vzdáleného sezení na lokální počítač. Přeposílání se povolí nastavením přepínače `-A` při volání SSH. ssh -A uzivatel@postel.felk.cvut.cz