1 [[!meta title="Přístup ke git repozitářům na serveru rtime"]]
3 Přístup se děje protokolem SSH (*ssh://git@rtime.felk.cvut.cz/...*) a
4 uživatelé jsou autorizováni výhradně pomocí SSH klíčů. Hláška
5 "*Permission denied (publickey).*" znamená, že nemáte SSH klíče
6 správně nastaveny. Otestovat přístup si můžete příkazem
8 ssh git@rtime.felk.cvut.cz info
10 Server rtime automaticky importuje veřejné klíče z vašeho školního
11 home adresáře. Import probíhá každou celou hodinu a ve čtvrtek přes
12 den každých **5 minut**. Za SSH veřejný klíč jsou považovány soubory
13 odpovídající masce `~/.ssh/*.pub`.
17 Nejsnazší cesta jak si SSH klíč vytvořit je spustit na počítači
18 v laboratoři (či na serveru postel.felk.cvut.cz) příkaz
22 Ten vytvoří pár klíčů (veřejný a soukromý) a ve výchozím nastavení je
23 uloží do správného adresáře pod správným jménem.
25 Pokud veřejný klíč kopírujete do svého domovského adresáře z jiného
26 počítače, je nezbytně nutné, aby byla správně nastavena práva k vašemu
27 adresáři s SSH daty. Do adresáře nesmí mít přístup nikdo jiný než vlastník.
28 K privátnímu klíči (ten bez `*.pub`) nesmí mít ostatní uživatelé
29 A také žádný přístup a k veřejnému klíči by naopak měla být práva
30 pro čtení nastavena pro všechny.
32 uzivatel@postel:~$ ls -ld ~/.ssh
33 drwx------ 2 uzivatel users 136 Mar 9 12:23 /home/pisa/.ssh
35 uzivatel@postel:~$ ls -l ~/.ssh
37 -rw------- 1 uzivatel users 1679 Mar 9 12:23 id_rsa
38 -rw-r--r-- 1 uzivatel users 393 Mar 9 12:23 id_rsa.pub
39 -rw-r--r-- 1 uzivatel users 4272 Dec 7 09:39 known_hosts
41 **Pro kontrolu svých klíčů použijte příkaz `check-ssh-key`**, který
42 upozorní na případné problémy a vypíše, které klíče budou na server
43 `rtime` automaticky importovány. Pokud máte problém s právy k souborům
44 či adresářům, prostudujte si dokumentaci `man chmod`.
46 Doporučujeme, abyste si klíč **zašifrovali heslem** (enter a
47 passphrase), protože pak nebude moct být váš soukromý klíč zneužit
48 lidmi, kteří mají přístup k datům na serveru (administrátoři atd.).
49 Pokud tak učiníte, může se vám hodit příkaz `ssh-add`, kterým klíč
50 rozšifrujete v paměti svého počítače a až do vašeho odlogování heslo
51 nebudete muset zadávat.
55 Hesla v paměti udržuje služba `ssh-agent`, která běží na počítačích
56 v laboratořích (a i na většině běžných GNU/Linux distribucí) pro každé
57 lokální sezení. K této službě se pro vložení klíče připojuje program
58 `ssh-add` stejně jako si příkazy `ssh` (i při použití SSH protokolu
59 v `git`u) si nechají touto službou podepisovat autentikační tokeny
62 Na serveru `postel` není automaticky pro vzdálená sezení `ssh-agent` spuštěn.
63 Je potřeba si ho pustit, zajistit nastavení proměnných prostředí `SSH_AGENT_PID`
64 a `SSH_AGENT_SOCKET` a při odhlášení agenta ukončit příkazem `kill $SSH_AGENT_PID`
65 případně `killall ssh-agent`.
67 Případně je možné agenta pustit na svém lokálním počítači a zajistit
68 přeposílání požadavků na podpisy ze vzdáleného sezení na lokální
69 počítač. Přeposílání se povolí nastavením přepínače `-A` při volání
72 ssh -A uzivatel@postel.felk.cvut.cz