Jak nakonfigurovat přístup do Subversion úložiště přes svn+ssh
protokol (např. svn+ssh://username@students.kiv.zcu.cz/home/users/staff/brada/svnroot/test/
):
Rozchození ssh přístupu
Pro základní funkčnost svn+ssh
není třeba dělat vůbec nic, krom toho že na lokále je třeba mít nainstalované ssh -- svn klient se zeptá na jméno a heslo vždy když ho potřebuje, připadně si tyto credentials nacachuje (je-li dost "chytrý").
Pokud se nechceme otravovat se zadáváním hesla, musíme:
- [WINDOWS] nainstalovat Cygwin - potřeba pro náš účel je hlavně
ssh
(na Linuxu je ssh
je standardně k dispozici, případně doinstalovat balíček openssh-client)
- bude nainstalováno pod
(cygwin root path)
např. C:\cygwin\
- vygenerovat private-public key pair
ssh-keygen -t dsa
-- normálně se doporučuje zaheslovat klíč (zadat passphrase) ale to je nevhodné pro Subversion přístup (svn se pořád ptá, protože pořád pouští ssh pod sebou) tj. passphrase nezadávejte; default adresář pro umístění klíčů (private directory) je $HOME/.ssh (pro Cygwin tedy (cygwin root path)/home/<username>/.ssh/
)
- mělo by vzniknout něco jako
(private directory)/id_dsa
, což je ten privátní klíč, a .../id_dsa.pub
což je veřejný klíč
- [LINUX] Alternativní návod v angličtině
- [WINDOWS] Generování klíče jde dělat i přímo v putty, pouze je třeba dát pozor že jeho klíč není kompatibilní s
openssh
tj. například s linuxovým ssh
klientem -- postup viz návod pro putty.
- veřejný klíč nahrát (pomocí
scp
) na stroj, kde je úložiště (stroj.domena.tld
), do svého $HOME/.ssh
adresáře
- (Pro studenty KIV ZČU: na serveru
students.kiv.zcu.cz
jde o adresář /afs/kiv.zcu.cz/kiv/home/students/<username>/.ssh
.)
- privátní klíč se nikomu nedává! pokud ho někdo získá, může se za vás vydávat a přihlašovat
- na stroj se přihlásit (přes
ssh
, ve Windows např. putty) a veřejný klíč přidat přes příkazovou řádku cd ~/.ssh; cat id_dsa.pub >> authorized_keys
mezi známé klíče
- POZOR, na ZČU je třeba (a) dát ">>" nikoli ">", (b) needitovat
authorized_keys
přes WinSCP nebo podobný "vzdálený" editor -- v obou případech chyba = přepsání souboru = nefunkčnost
- vyzkoušet: spustit na svém stroji cmdline, v ní
ssh username@stroj.domena.tld
-- nemělo by se ptát na nic víc než passphrase pro klíč, pokud byla nastavena; jako username
se na ZČU předpokládá Orion login
(Pro studenty KIV: pokud výše uvedený postup nefunguje, a nepomáhá ani konzultace se spolužákem, popište problém administrátorům na <support@mail.kiv.zcu.cz> aby jej mohli pomoci řešit.)
Konfigurace subversion klienta
Command line interface (CLI)
- Do konfigurace svn command line klienta přidat
ssh = "/bin/ssh.exe" -i "(path to your private key)"
- parametr -i používá k autentikaci klíč místo hesla
- [WINDOWS] cesta k ssh je
"(cygwin root path)\bin\ssh.exe"
GUI Tortoise
- spustit Settings > Network, v oddílu SSH zadat
(cygwin root path)\bin\run.exe (cygwin root path)\bin\ssh.exe -i (private directory)\id_dsa
- (vysvětlivky: run.exe spouští bez konzolového okna)
- pokud je třeba ladit problémy, odstranit
(cygwin root path)\bin\run.exe
-> TortoiseSVN? ukazuje volání ssh pod sebou
GUI Eclipse - Subclipse
Je potřeba mít nainstalovaný SVNKit? Adapter v rámci Subclise (s JavaHL? rozhraním to nejde připojit) -- je třeba zaškrtnout při instalaci Subclipse
- Preferences > Network connections > SSH2? tab General, nastavit SSH2? home na cestu k ssh (resp. příslušné binárce, pro Putty je to plink.exe který se používá pro ssh tunel bez okna terminálu)
- Preferences > Team > SVN > SVN interface nastavit na SVNKit?
- otevřít perspektivu Repository browsing, přidat repository, zkusit do ní rozklikout -> dialog připojení, nastavit Use private key auth, naklikat/napsat cestu k private key a Save information
GUI Eclipse - Subversive
TBD