GIT portforward

Vaultman

GIT portforward
« kdy: 16. 03. 2011, 17:50:12 »
Ahoj,

řeším (pro mě) zapeklitý problém. Mám 2 servery na kterých běží CentOS. Adresy jsou example.com a git.example.com. Git checkout momentálně funguje přes git@git.example.com:repo. Chci k repozitářům ale přistupovat přes adresu git@example.com:repo. Abych to zkrátil, prostě potřebuju ke git serveru přistupovat skrze loadbalancer. Studoval jsem různé portforwardy, iptables, atp, ale bezvýsledně.
Neví někdo tedy jak dosáhnout toho, aby server example.com transparentně přesměroval git ssh příkaz (včetně klíče) na další server kde je samotný git?

Ještě dodám že různá ssh magie na koncových strojích nepřipadá úvahu, protože uživatel může přistupovat ke gitu z jakéhokoliv systému.

Děkuji za rady, nebo aspoň nakopnutí správným směrem


Vaultman

Re: GIT portforward
« Odpověď #1 kdy: 16. 03. 2011, 17:52:50 »
ještě dodám že na správu gitu používám gitolite a jako loadbalancer haproxy (přes který se mi přesměrování taky nepodařilo)

Nassir

Re: GIT portforward
« Odpověď #2 kdy: 16. 03. 2011, 20:57:41 »
Skus ssh gateway:
http://quark.humbug.org.au/publications/ssh/ssh-tricks.html
Podla popisu zapises uzivatelovi git@example.com do suboru ~/.ssh/authorized_keys prikaz, ktory sa ma spustit pri kazdom prihlaseni sa danym ssh klucom. Prihlasenie do gitu sa tak bude dat len s platnym ssh klucom, ale to mas asi nastavene aj tak.
Neskusal som, ale verim, ze este si musis vymenit ssh kluce medzi uzivatelmi git@example.com a git@git.example.com, aby sa presmerovanie mohlo uskutocnit automaticky. Odporucam pouzit ssh-copy-id.
Ak by to neslo, tak si asi dobehal. V haproxy sa deju zmeny, ale urobit "virtualhostig" pre ssh - to tak skoro nebude.

Re: GIT portforward
« Odpověď #3 kdy: 16. 03. 2011, 21:07:37 »
A neni daleko snadnejsi jedno z tech sshcek prehodit na jiny port?

Vaultman

Re: GIT portforward
« Odpověď #4 kdy: 16. 03. 2011, 22:08:53 »
ssh gateway jsem zkoušel, ale ten funguje tak, že se nejdříve musím přihlásit na server a až tam, když provedu ssh příkaz mě to přesměruje na git server. Přesměrování přímo při přihlášení se mi rozjet nijak nepovedlo.

Přehazování portů ničemu nepomůže, nijak to nezabezpečí samotné přesměrování na git stroj. Alespoň si teda nedovedu představit jak by mohlo


Nassir

Re: GIT portforward
« Odpověď #5 kdy: 16. 03. 2011, 23:44:56 »
Tak skus este raz, mne to presmerovane prihlasovanie funguje  - prave vyskusane.
V .ssh/authorized keys si pred svoj kluc, ktorym sa prihlasujes doplnis:
command="ssh -t git@git.example.com" ssh-dss AAAAB3Nza....tuPokracujeSSHKluc ja@vonkajsi.server.com
Samotnym prihlasenim sa ti vykona dany prikaz a dostanes sa na druhy stroj. Presmerovany gitosis by mal fungovat tiez, kedze ten rovnako vykonava svoj prikaz na pracu s gitom zo suboru authorized_keys.

Vaultman

Re: GIT portforward
« Odpověď #6 kdy: 17. 03. 2011, 16:25:36 »
ok, samotné přesměrování funguje. Gitolite má teďkom problémy s ssh klíči a nefunguje, ale s tím už se nějak poperu, šlo mi hlavně o to přesměrování.
Díky za pomoc :)

Re: GIT portforward
« Odpověď #7 kdy: 17. 03. 2011, 19:26:18 »
Přehazování portů ničemu nepomůže, nijak to nezabezpečí samotné přesměrování na git stroj. Alespoň si teda nedovedu představit jak by mohlo

Tak to jsem asi nepochopil problem... Psals:

Citace
Neví někdo tedy jak dosáhnout toho, aby server example.com transparentně přesměroval git ssh příkaz (včetně klíče) na další server kde je samotný git?

...tak jsem si myslel, ze by example.com proste port 22 presmeroval na git.example.com bez jakekoli znalosti, co po nem beha, a svoje ssh mel treba na 2222. To neni zadna veda a funguje to bezproblemove.