Dovresti usare HTTPS o SSH per Git?

0
197

Quando ti connetti a repository Git remoti come Github, di solito hai due opzioni di connessione& #8212;HTTPS o SSH. Entrambi hanno i loro usi e, sebbene SSH sia generalmente considerato più sicuro, la domanda è un po' più complicata.

Qual ​​è la differenza ?

Il metodo di autenticazione che usi per connetterti a un repository Git dipende dall'URL con cui è configurato il tuo telecomando. Il formato URL predefinito utilizzato da Github è HTTPS, che comunica direttamente tramite il protocollo web:

https://github.com/user/RepoName.git

Tuttavia, puoi anche usare SSH. Anche se non stai aprendo una shell interattiva ed eseguendo comandi, è ancora lo stesso formato come se ti stessi connettendo a un normale server Linux abilitato per SSH:

user@ipaddress:folder/file < p>Con Github e la maggior parte dei servizi, ti connetti al “git” utente e accedi all'endpoint .git come file in una cartella con il tuo nome utente.

git@github.com:user/RepoName.git

Perché usare HTTPS?

Quindi, quale dovresti usare? Sebbene SSH sia generalmente considerato più sicuro, per l'utilizzo di base di Github, l'autenticazione HTTPS con una password è abbastanza accettabile. In effetti, Github stesso utilizza HTTPS e consiglia alla maggior parte delle persone di utilizzare HTTPS.

Pubblicità

Tuttavia, non è così semplice come in passato, ad agosto 2021 Github è stato disabilitato utilizzando la password del tuo account per l'autenticazione. Dovrai creare un token di accesso personale, che agisce come una seconda password, ma è univoco e può ricevere autorizzazioni specifiche. Ti consente anche di utilizzare 2FA sul tuo account senza problemi.

HTTPS ha molti vantaggi:

  • HTTPS è più semplice. Per la maggior parte dei servizi oltre a Github, devi solo inserire il tuo nome utente e password e sarai in grado di inserire e estrarre il codice.
  • Non devi destreggiarti tra più chiavi SSH intorno per utilizzare più dispositivi.
  • La porta 443, utilizzata da HTTPS, è aperta praticamente in qualsiasi firewall in grado di accedere a Internet. Non è sempre così per SSH.

Lo svantaggio principale per la maggior parte delle persone è che devi inserire la password/token Git ogni volta che esegui il push. Sebbene venga aggiunto a una cache, non è configurato per la cache in modo permanente (sebbene questo possa essere modificato). Con le chiavi SSH, usa solo il file chiave su disco ogni volta.

Perché usare SSH?

È un equivoco che HTTPS come protocollo sia significativamente meno sicuro di SSH. Entrambi ti forniranno una connessione sicura al sicuro dagli attacchi man-in-the-middle (MITM). Entrambi i protocolli svolgeranno il loro lavoro allo stesso modo purché le chiavi sottostanti siano protette. Entrambi utilizzeranno comunque l'autenticazione basata su chiave pubblica, sebbene HTTPS con Git invierà la tua password via cavo. Ed entrambi i protocolli possono essere configurati per utilizzare anche l'autenticazione a più fattori (MFA/2FA), sebbene con Github sia più semplice utilizzare MFA sul tuo account se utilizzi le chiavi SSH.

Dove SSH prende il comando è con il fattore di autenticazione—la chiave. La sola lunghezza rende più difficile la fuoriuscita accidentale e, poiché è ingombrante e unico, è generalmente più sicuro. L'unico inconveniente è che è memorizzato come file accessibile all'utente sul disco rigido anziché nella tua testa, ma dato quanto gli esseri umani non siano in grado di garantire la sicurezza, probabilmente è meglio così.

< p>Inoltre, non è soggetto a essere coinvolti in una violazione dei dati. È garantito che non verrà riutilizzato, ma non viene mai nemmeno memorizzato sul server di qualcun altro. Poiché fornisci a Github solo la tua chiave pubblica e utilizzi la tua chiave privata per eseguire la sfida di autenticazione, non c'è alcun rischio che venga esposta o addirittura inviata via cavo.

SSH ha molti svantaggi, ma possono essere mitigati se sai cosa stai facendo:

  • La configurazione del tuo account Github per utilizzare la tua chiave SSH richiede solo pochi comandi e clic le loro impostazioni.
  • La gestione di più chiavi per computer non è banale, ma non è troppo difficile da configurare configurando il file host SSH e i telecomandi Git.
  • Il trasferimento delle chiavi su altre macchine è possibile, ma poiché puoi avere più chiavi SSH, questo non è necessario.

RELAZIONATO: Come utilizzare una chiave SSH privata diversa per Git Shell Comandi

SSH può anche essere eseguito il tunneling su HTTPS quando si accede a Github, utilizzando il nome host ssh.github.com nella configurazione di SSH. Anche se questo potrebbe non essere vero per tutti i servizi Git, è un bel vantaggio per quello grande:

Host github.com Nome host ssh.github.com Porta 443

Le chiavi SSH possono anche essere concatenate utilizzando l'inoltro dell'agente SSH, che consente di connettersi a un server remoto e quindi utilizzare la chiave SSH sul computer client per l'autenticazione. Il server remoto funge da intermediario, ignaro della tua chiave SSH.

RELAZIONATO: Che cos'è l'inoltro dell'agente SSH e come lo usi?

Cosa dovresti usare?

La domanda è, dovresti preoccupartene? Se hai esperienza con una riga di comando, non è troppo difficile usare solo i tasti, e la maggior parte delle persone lo farà comunque semplicemente perché è più facile da configurare una volta e non inserire mai più una password. Funziona anche meglio con 2FA, che probabilmente dovrebbe utilizzare la maggior parte degli account Github ad alta sicurezza.

Se stai solo cercando un'esperienza semplice, HTTPS è sicuro purché la tua password sia sicura. C'è un motivo per cui Github lo ha come predefinito e consiglia addirittura che funzioni bene ed è facile da capire.