GNU/Linux >> Linux Esercitazione >  >> Linux

Come fare in modo che git non chieda la password al pull?

Ci sono alcune opzioni, a seconda di quali sono i tuoi requisiti, in particolare le tue esigenze di sicurezza. Sia per HTTP che per SSH, esiste un accesso senza password o con password richiesta.

HTTP

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

Senza password

Utile solo per i requisiti di recupero, per impostazione predefinita il push è disabilitato. Perfetto se l'intenzione è la clonazione anonima. Sicuramente non dovresti abilitare push per questo tipo di configurazione. La pagina man di git-http-backend contiene buone informazioni, copia online su http://www.kernel.org/pub/software/scm/git/docs/git-http-backend.html. Fornisce un esempio di come configurare Apache per fornire questo.

User/password in .netrc o url incorporato

Dove vengono utilizzati i file .netrc nella forma:

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

E gli URL incorporati sarebbero nella forma:

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

Poiché git non eseguirà l'autenticazione per te, dovrai configurare un server web come apache per eseguire l'autenticazione, prima di passare la richiesta agli strumenti git. Tieni inoltre presente che l'utilizzo del metodo incorporato rappresenta un rischio per la sicurezza, anche se utilizzi https poiché fa parte dell'URL richiesto.

Se vuoi essere in grado di eseguire il pull non interattivo, ma impedire agli utenti anonimi di accedere al repository git, questa dovrebbe essere una soluzione ragionevolmente leggera utilizzando apache per l'autenticazione di base e preferibilmente il file .netrc per archiviare le credenziali. Come piccolo gotcha, git abiliterà l'accesso in scrittura una volta utilizzata l'autenticazione, quindi usa http anonimo per sola lettura o dovrai eseguire alcune configurazioni aggiuntive se vuoi impedire all'utente non interattivo di avere accesso in scrittura .

Vedi:

  • httpd.apache.org/docs/2.4/mod/mod_auth_basic.html per ulteriori informazioni sulla configurazione dell'autenticazione di base
  • www.kernel.org/pub/software/scm/git/docs/git-http-backend.html per alcuni esempi sulla configurazione di Apache necessaria.


SSH

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

Senza passphrase

Si apre per problemi di sicurezza, dal momento che chiunque possa ottenere una sospensione della chiave privata ssh può ora aggiornare il repository git remoto come questo utente. Se vuoi usarlo in modo non interattivo, ti consiglio di installare qualcosa come gitolite per rendere un po 'più semplice garantire che quelli con la chiave privata ssh possano solo estrarre dal repository e richiede una diversa coppia di chiavi ssh per l'aggiornamento il repository.

Vedi github.com/sitaramc/gitolite/ per ulteriori informazioni su gitolite.

stromberg.dnsalias.org/~strombrg/ssh-keys.html - per la creazione di chiavi ssh senza password:potrebbe anche voler coprire la gestione di più chiavi ssh:www.kelvinwong.ca/2011/03/30/multiple-ssh-private- keys-identityfile/

Protezione della fase di passaggio

Può usare ssh-agent per sbloccare in base alla sessione, veramente utile solo per il recupero interattivo da git. Dal momento che menzioni root e parli solo di eseguire "git pull", sembra che il tuo caso d'uso non sia interattivo. Questo è qualcosa che potrebbe essere combinato meglio con gitolite (github.com/sitaramc/gitolite/).

Riepilogo

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

L'uso di qualcosa come gitolite astrarrà gran parte della configurazione per le configurazioni di tipo SSH ed è decisamente consigliato se pensi di poter disporre di repository aggiuntivi o di dover specificare diversi livelli di accesso. Anche la registrazione e il controllo sono molto utili.

Se vuoi solo essere in grado di eseguire il pull tramite http, la pagina man git-http-backend dovrebbe contenere informazioni sufficienti per configurare apache per fare ciò che è necessario.

Puoi sempre combinare http(s) anonimi per clone/pull, con accesso ssh protetto da passphrase richiesto per l'accesso completo, nel qual caso non è necessario configurare gitolite, dovrai solo aggiungere la chiave pubblica ssh al file ~/. ssh/authorized_keys.


Vedi la risposta a questa domanda. Dovresti usare l'accesso SSH invece di HTTPS/GIT e autenticarti tramite la tua chiave pubblica SSH. Questo dovrebbe funzionare anche localmente.


Linux
  1. Come fare in modo che sudo ricordi la password più a lungo

  2. Ssh:in che modo Ssh richiede una password quando tutto l'input e l'output vengono reindirizzati?

  3. Come digitare la password per più finestre?

  4. Come creare un alias per un lungo percorso?

  5. Come posso fare in modo che sudo chieda la password di root?

Come disabilitare l'autenticazione della password SSH su VPS Linux

Come impostare l'autenticazione a più fattori per SSH in Linux

Come passare la password al comando SSH in Linux

Come configurare Pkexec per non richiedere la password?

Come faccio a rendere un file NON modificabile?

SSH non chiede la password, dà il permesso negato immediatamente