GNU/Linux >> Znalost Linux >  >> Linux

Jak přimět git, aby při vytažení nepožadoval heslo?

Existuje několik možností v závislosti na vašich požadavcích, zejména na vašich potřebách zabezpečení. Pro HTTP i SSH je přístup bez hesla nebo je vyžadováno heslo.

HTTP

===============

Bez hesla

Užitečné pro požadavky pouze na načítání, standardně je push zakázáno. Perfektní, pokud je záměrem anonymní klonování. Rozhodně byste neměli povolovat push pro tento typ konfigurace. Manuál pro git-http-backend obsahuje dobré informace, online kopie na http://www.kernel.org/pub/software/scm/git/docs/git-http-backend.html. Poskytuje příklad, jak nakonfigurovat apache, aby to poskytl.

Uživatel/heslo v .netrc nebo vložená adresa URL

Kde se soubory .netrc používají ve tvaru:

machine <hostname> login <username> password <password>

A vložené adresy URL by byly ve tvaru:

http://user:[email protected]/repo

Protože git neprovede ověření za vás, budete muset nakonfigurovat webový server, jako je apache, aby provedl ověření, než požadavek předá nástrojům git. Také mějte na paměti, že použití embedded metody představuje bezpečnostní riziko, i když používáte https, protože je součástí požadované adresy URL.

Pokud chcete mít možnost neinteraktivní stahování, ale zabránit anonymním uživatelům v přístupu k git repo, mělo by to být přiměřeně lehké řešení využívající apache pro základní auth a nejlépe soubor .netrc k ukládání přihlašovacích údajů. Jako malý problém, git povolí přístup pro zápis, jakmile se použije autentizace, takže buď použijte anonymní http pro pouze pro čtení, nebo budete muset provést nějakou další konfiguraci, pokud chcete zabránit neinteraktivnímu uživateli v přístupu pro zápis .

Viz:

  • httpd.apache.org/docs/2.4/mod/mod_auth_basic.html, kde najdete další informace o konfiguraci základního ověření
  • Na www.kernel.org/pub/software/scm/git/docs/git-http-backend.html najdete několik příkladů potřebné konfigurace Apache.


SSH

===============

Bez přístupového hesla

Otevře se bezpečnostním problémům, protože kdokoli, kdo může získat soukromý klíč ssh, může nyní aktualizovat vzdálené úložiště git jako tento uživatel. Pokud to chcete používat neinteraktivně, doporučoval bych nainstalovat něco jako gitolite, aby bylo trochu snazší zajistit, aby uživatelé se soukromým klíčem ssh mohli stahovat pouze z repozitáře a že aktualizace vyžaduje jiný pár klíčů ssh repo.

Více o gitolite naleznete na github.com/sitaramc/gitolite/.

stromberg.dnsalias.org/~strombrg/ssh-keys.html – pro vytváření hesel bez ssh klíčů:Může také chtít pokrýt správu více klíčů ssh:www.kelvinwong.ca/2011/03/30/multiple-ssh-private- key-identityfile/

Chráněno přístupovou fází

Může použít ssh-agent k odemknutí na základě jednotlivých relací, což je opravdu užitečné pouze pro interaktivní načítání z git. Protože zmiňujete root a mluvíte pouze o provádění „git pull“, zní to, jako by váš případ použití nebyl interaktivní. To je něco, co by se dalo lépe kombinovat s gitolite (github.com/sitaramc/gitolite/).

Shrnutí

===============

Použití něčeho jako gitolite abstrahuje velkou část konfigurace pro nastavení typu SSH a rozhodně se doporučuje, pokud si myslíte, že byste mohli mít další úložiště nebo potřebujete zadat různé úrovně přístupu. Jeho protokolování a auditování jsou také velmi užitečné.

Pokud chcete mít možnost stahovat přes http, manová stránka git-http-backendu by měla obsahovat dostatek informací pro konfiguraci apache, aby dělal potřebné.

Vždy můžete zkombinovat anonymní http(s) pro clone/pull, s přístupem ssh chráněným heslem pro plný přístup, v takovém případě není potřeba nastavovat gitolite, stačí přidat veřejný klíč ssh do ~/. ssh/authorized_keys.


Podívejte se na odpověď na tuto otázku. Měli byste použít přístup SSH místo HTTPS/GIT a autentizovat se pomocí svého veřejného klíče SSH. To by mělo fungovat i lokálně.


Linux
  1. Jak udělat sudo zapamatovat si heslo déle

  2. Jak zakázat přihlášení SSH pomocí hesla

  3. http proxy přes ssh, ne ponožky

  1. root heslo nefunguje pro su v terminálu

  2. Jak udělám, aby soubor NELZE upravovat?

  3. SSH nepožaduje heslo, povolení okamžitě odepře

  1. Jak nastavit SSH přihlášení bez hesla

  2. Jak zadat heslo do příkazu git pull?

  3. Jak zajistit vypršení platnosti pravidel iptables?