4 subject="Jak vyzrát na Permission denied (publickey) při akci: git fetch osp"
5 date="2014-03-20T23:13:33Z"
7 Méně zkušenější uživatelé Linuxu (jako třeba já) se možná potýkali / potýkají s problémem při provedení příkazu
11 kdy obdrží hlášku Permission denied (publickey). A to i v případě, že jim v pořádku prochází příkaz
13 # ssh git@rtime.felk.cvut.cz info
15 Je to způsobeno tím, že při použití magického slůvka `sudo` se jakoby přepnete na chvíli do účtu root.
16 Vámi vygenerovaný ssh klíč je tedy potřeba nakopírovat ještě do adresáře `/root/.ssh/` (obdoba toho v `/home/user/.shh/`, ale pro účet root).
18 Poté by již s provedením příkazu
22 neměl být žádný problém.
28 Pokud ale stále tápete, nebo Vám něco stále nefunguje, postupujte dle tohoto návodu:
29 (Návod předpokládá, že se snažíte připojit k `git@rtime.felk.cvut.cz/osp/mc` z Vašeho vlastního stroje, nikoliv ze stanice v učebně s109)
31 1. Připojte se k Vašemu účtu na `postel.felk.cvut.cz`
33 # ssh -A uzivatel@postel.felk.cvut.cz
35 Slovo `uzivatel` nahraďte Vašim loginem, kterým se připojujete na stanici v učebně s109. Následně budete vyzvání k zadání hesla.
37 2. Vygenerujte SSH klíč
41 Lokaci a název klíče raději nechte jak je, pokud opravdu nepotřebujete měnit.
43 Dále se doporučuje zadat nějaké heslo, pokud jste ale líní jako já, a nechcete při každém připojení zadávat heslo, heslo nevyplňujte a prostě 2x zmáčkněte Enter, načež se Vám vygenerují ve složce `~/.ssh` 2 nové soubory (Veřejný a privátní SSH klíč).
45 Po vygenerování klíče doporučuji provést tento příkaz
47 (Nevím, zdali je to nutné, ale klíč se mi aktualizoval až poté, co jsem spustil tento příkaz)
51 Informaci, zda server načetl již nový klíč získáme pomocí příkazu
55 Mezitím, než server aktualizuje seznam nových klíčů se můžeme odhlásit příkazem
59 3. Zkopírování nových klíčů na vlastní stroj
61 Pro zkopírování vygenerovaných SSH klíčů ze serveru `postel.felk.cvut.cz` jsem využil nástroje `sshfs`, v případě, že jej nemáte, lze jednoduše doinstalovat například pomocí
63 # sudo apt-get install sshfs
65 Tento šikovný nástroj nedělá nic jiného, než že \"namountuje\" (propojí) Vámi vybraný adresář na disku s nějakým adresářem na serveru `postel.felk.cvut.cz`.
67 Nejdříve vytvoříme přípojný adresář, který propojíme se serverem.
69 # mkdir /home/user/postel
71 Dále provedeme propojení se serverem `postel.felk.cvut.cz`
73 # sshfs uzivatel@postel.felk.cvut.cz: /home/user/postel/
75 Po přípojení můžeme provést zkopírování vygenerovaných SSH klíčů
77 # cp -a /home/user/postel/.ssh/. /home/user/.ssh/.
78 # cp -a /home/user/.ssh/. /root/.ssh/.
80 Nyní se už můžete odpojit a smazat mountpoint
82 # sudo fusermount -u /home/user/postel
83 # rm -r /home/user/postel
85 4) Jestli Vám ani teď nebude fungovat příkaz
89 Tak už Vám není pomoci XD