Chiave SSH - Ancora chiedendo password e passphrase


496

Sono stato un po '"tollerante" con Github chiedendo sempre il mio nome utente e password quando clonavo un repository. Voglio ignorare questo passaggio perché è un fastidio all'interno del mio flusso di lavoro.

Ho provato a configurare una chiave SSH (cosa che ho fatto con successo) usando questa guida. https://help.github.com/articles/generating-ssh-keys e ho avuto successo.

Il mio problema è che durante la clonazione di un repository (utilizzando SSH) mi viene ancora richiesta la password e la passphrase di github. La mia comprensione era che dopo aver impostato questa chiave SSH, non avrei più dovuto farlo.

Non sono sicuro di cosa chiedere, quindi dichiarerò il mio obiettivo.

Voglio essere in grado di clonare i repository senza dover inserire continuamente le mie informazioni di Github .

Cosa mi manca con la mia chiave SSH? Se qualcuno può fornire alcune indicazioni o risorse lo apprezzerei, perché mi sono sempre sentito un po 'perso quando si trattava dell'autenticazione SSH in GitHub.

Dalla mia conoscenza, questo è un comando che verifica se le cose funzionano correttamente, ecco l'output dalla mia console:

~ $ ssh -T git@github.com
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.

Quando inserisco la mia password, dovrebbe prima fallire? Quindi, quando inserisco la mia passphrase, passa.


1
In quale sistema operativo sei? Un moderno desktop Linux proporrebbe di archiviare la passphrase in un gestore di portachiavi. Lo stesso in Mac OS X. In Windows puoi usare pageant, di cui fa parte putty. In tutti questi obiettivi l'obiettivo è lo stesso: si inserisce la passphrase solo una volta dopo aver avviato il PC, gli agenti del key manager lo passeranno a ssh negli usi successivi fino al riavvio.
Janos


2
Sono un po 'in ritardo alla festa qui, ma sulla piccola scheda / pulsante clone in github c'è un link che dice "Usa SSH". Vuoi farlo. Cambia il tuo link clone in qualcosa come "git @ github: username / project.git". Se hai aggiunto una chiave SSH a github e la hai eseguita localmente su ssh-agent, dovresti essere in grado di inviare senza inserire un nome utente o una password.
Logan Kitchen,

Risposte:


201

Se lavori con gli HTTPsURL, ti verrà sempre chiesto il tuo nome utente / password.

Se si utilizza correttamente SSHdurante la clonazione / impostazione dei telecomandi. Quindi assicurati di avere un agente ssh per ricordare la tua password. In questo modo, inserirai la passphrase solo una volta per sessione terminale.

Se è ancora troppo fastidioso, è sufficiente impostare un tasto ssh senza passphrase.


2
Grazie per la risposta. Ho sempre usato HTTPs. Sto cercando di ottenere l'autenticazione SSH e ho pensato di configurarlo. L'agente ssh è qualcosa al di fuori di git che devo installare? Grazie
HelloWorld,

1
@ R11G non puoi, altrimenti le password non sarebbero sicure ... Rigenera solo una nuova.
Simon Boudrias,

50
Voglio solo notare che le passphrase vengono utilizzate per crittografare la chiave privata, quindi se non si utilizza una passphrase, la chiave privata non verrà crittografata sulla macchina. È come lasciare una password in un file di testo sul tuo computer.

2
Divertente, i miei repository HTTPS non richiedono mai password e i miei repository SSH lo fanno sempre.
Adam,

33
Vedi questo documento github per convertire l'URL del telecomando da https a ssh. Per verificare se l'URL del telecomando è ssh o https, utilizzare git remote -v. Per passare da HTTPS a SSH:git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
Manavalan Gajapathy

826

Aggiungi identità senza portachiavi

Ci possono essere momenti in cui non vuoi che la passphrase sia memorizzata nel portachiavi, ma non vuoi inserire più volte la passphrase.

Puoi farlo in questo modo:

ssh-add ~/.ssh/id_rsa 

Questo ti chiederà la passphrase, inseriscila e non ti chiederà più fino al riavvio.

Aggiungi identità usando il portachiavi

Come sottolinea @dennis nei commenti, per mantenere la passphrase al riavvio memorizzandola nel portachiavi, è possibile utilizzare l' -Kopzione ( -kper Ubuntu) quando si aggiunge l'identità in questo modo:

ssh-add -K ~/.ssh/id_rsa

Ancora una volta, questo ti chiederà la passphrase, inseriscila e questa volta non ti chiederà mai più questa identità.


178
Si noti che questo non persisterà l'identità al riavvio. Puoi utilizzare l' -Kopzione per memorizzare la passphrase nel tuo portachiavi quando lo aggiungi, ad es.ssh-add -K ~/.ssh/id_rsa
Dennis

29
minuscolo -kper me ... (base Linux Mint / Ubuntu 14.04) ma sì! finalmente risolto questo ...
Louis Maddox il

8
basta eseguire il comando "ssh-add" e inserire la password una volta, la riga di comando non ti chiederà di nuovo la password.
AVINASH SHRIMALI

14
Non hai bisogno di alcun argomento; solo in esecuzione ssh-addaggiungerà automaticamente ~/.ssh/id_rsa(tra gli altri file). E non c'è motivo per inviare l'output a /dev/null; molto meglio vedere il resoconto di ciò che ha fatto.
Ted Hopp,

6
Qualche idea sul perché ottenga "Impossibile aprire una connessione al tuo agente di autenticazione."?
dokaspar,

252

Su Mac OSX puoi aggiungere la tua chiave privata al portachiavi usando il comando:

ssh-add -K /path/to/private_key

Se la tua chiave privata è memorizzata in ~ / .ssh e si chiama id_rsa:

ssh-add -K ~/.ssh/id_rsa

Ti verrà quindi richiesta la password, che verrà memorizzata nel tuo portachiavi.

Modifica: gestisce il riavvio

Per non dover inserire la password anche dopo un riavvio, aggiungere quanto segue al file di configurazione di ssh (che si trova comunemente in ~ / .ssh / config)

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

7
Nel mio caso, richiede ancora la passphrase dopo il riavvio (macOS Sierrra 10.12.2). Qualche idea su come risolverlo?
inigo333,

9
Non importa, ho appena trovato il problema. È un bug (funzione?) Di Mac OS X 10.12 in cui ssh-agent non carica automaticamente passphrase sul portachiavi durante l'avvio. github.com/lionheart/openradar-mirror/issues/15361
inigo333

2
@ inigo333 interessante. Ho appena aggiornato e notato questo me stesso!
Groot

1
@Groot, BTW, aggiungendo "Host * UseKeychain yes" a "~ / .ssh / config", come suggerito in altre risposte, risolve il problema.
inigo333,

1
Questa dovrebbe essere la risposta accettata. Specialmente il file di configurazione in~/.ssh
Xavi

186

Ho provato tutte le risposte qui e nessuna di queste risposte ha funzionato ! La mia password non persisterebbe tra le sessioni / i riavvii del mio Mac.

Quello che ho scoperto leggendo questo OpenRadar e questa discussione su Twitter è stato che Apple ha volutamente cambiato il comportamento di ssh-agent in macOS 10.12 Sierra per non caricare più automaticamente le chiavi SSH precedenti. Al fine di mantenere lo stesso comportamento di El Cap ho fatto quanto segue:

  1. ssh-add -K ~/.ssh/id_rsa
    Nota: modifica il percorso in cui si trova la tua chiave id_rsa.
  2. ssh-add -A
  3. Crea (o modifica se esiste) il seguente ~/.ssh/configfile:

    Host *
      UseKeychain yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/id_rsa
    

E ora la mia password viene ricordata tra i riavvii del mio Mac!


2
Questo potrebbe essere qualcosa di utile da aggiungere alle pagine della documentazione di github o osx . Ho avuto il momento più difficile capire perché il mio Mac con 10.11 e l'altro con 10.12 si comportavano diversamente.
GR

5
Mi è successo dopo un aggiornamento OSX, grazie (penso che ssh-add -Anon sia necessario se hai solo una chiave in ~/.ssh/id_rsa)
Dorian

1
Questa è una risposta incredibilmente utile. Grazie, mi hai reso felice.
Jan Nash,

2
A partire da ottobre 2017, questa risposta è esattamente ciò che stai cercando se usi macOS 10.12 o versioni successive.
Brogrammer,

3
E questo è ora sui documenti di github: help.github.com/articles/…
Todd Price

35

È possibile rimuovere la passphrase per la chiave

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

oppure puoi correre

$ ssh-keygen -p

viene visualizzato un prompt per keyfile. Di default, ~/.ssh/id_rsaquindi premere invio

Ti verrà richiesto di inserire la passphrase corrente.

Quindi verrà richiesto di inserire una nuova passphrase, premere Invio


Questo dovrebbe essere superiore a molte delle risposte quasi identiche per l'aggiunta della passphrase al portachiavi. Ho dovuto consegnare la mia chiave pubblica a un amministratore e ho incluso una passphrase che è diventata fastidiosa da digitare ogni volta. Questa è una soluzione pulita quando non si ha molto controllo su vostra macchina ( -K, -k, -Anon ha funzionato per me).
gwg,

1
Questa è l' unica cosa che ha funzionato per me al riavvio, tutti i comandi ssh-add -K, -k, ecc. Non hanno fatto nulla per me.
Amalgovinus,

28

Basta eseguire il seguente comando:

ssh-add -K

Non ti chiederà mai di inserire nuovamente la password.


3
Funziona benissimo, ma ero un po 'preoccupato per l'esecuzione di un comando casuale. Tuttavia, se controlli i documenti ssh-add"aggiunge identità di chiave privata all'agente di autenticazione" e l' -Kopzione lo rende semplicemente "Quando aggiungi identità, ogni passphrase verrà anche memorizzata nel portachiavi dell'utente".
machineghost,

8
In realtà, è stato risolto solo finché non ho riavviato :(
machineghost il

5
nella shell bash per Windows, il flag "-k" deve essere minuscolo. Cordiali saluti
Fergus,

27

Assicurati di usare ssh anche per il tuo repository

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin git@github.com:eMahtab/jenkins-cje-2017.git (fetch) origin git@github.com:eMahtab/jenkins-cje-2017.git (push)

inserisci qui la descrizione dell'immagine

Non usare https, se il tuo telecomando sta usando https continuerà a chiedere la password, anche se hai aggiunto la chiave pubblica a Github e la chiave privata a ssh-agent. Di seguito verrà sempre richiesta la password

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)


Sì, la differenziazione tra i due tipi di URL remoti è stata utile per me. Questo mi ha aiutato in termini di git pulle git push. Ho cambiato il mio URL dal tipo HTTPS al tipo SSH, e ha funzionato-- ha git pullsmesso di chiedere la password.
Michael R,

1
La commutazione può essere effettuata con questo comando:git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
guido

17

Ho dovuto eseguire:

eval `ssh-agent -s`
ssh-add

Nota : dovrai ripetere l'operazione dopo ogni riavvio. Se vuoi evitarlo, inseriscilo nel tuo file " .bashrc " che si trova C:\Users\<<USERNAME>>\.bashrcsu Windows. Probabilmente è nascosto, quindi assicurati di poter vedere i file nascosti.

Soluzione trovata qui .


15

Se stai usando Windows, questo ha funzionato per me:

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

Chiederà passphrase nel secondo comando, e basta.


1
Quando ti disconnetti e ti riconnetti devi inserire nuovamente la password ogni volta.
trainoasi,

12

TL; DR
È necessario utilizzare un agente ssh. Quindi, apri il terminale e prova

ssh-add

prima di spingere verso git. Immettere la passphrase quando richiesto.

Controlla qui la risposta StackExchange originale



6

Di recente ho eseguito l'aggiornamento a macOS Mojave e ho installato alcuni strumenti tramite homebrew, che sembrava scambiare la versione di Apple ssh-addcon quella diversa. La mia versione predefinita di ssh-add non aveva l' -Kopzione. Ciò ha portato al seguente errore:

# ssh-add: illegal option -- K

Puoi vedere quale versione di ssh-addte hai eseguendo which ssh-add.

(Il mio è stato memorizzato in /usr/local/bin/ssh-add)

Per risolvere questo problema, ho dovuto indicare la chiave della versione di Apple :

/usr/bin/ssh-add -K ~/.ssh/id_rsa

Git / GitHub ha funzionato perfettamente dopo. Per ulteriori informazioni, vedere: Errore: ssh-add: opzione illegale - K


Ho avuto lo stesso problema sul mio iMac con High Sierra 10.13.6 - questo ha funzionato per me. Grazie!
Emccracken,

Il mio aveva funzionato bene e ha ricominciato a casualmente a chiedere passphrase - potrebbe essere stato dopo un recente aggiornamento. Questo l'ha risolto! Grazie
mc01

5

Per Mac OSX Sierra, ho scoperto che le correzioni suggerite nel problema github per Open Radar hanno risolto il mio problema. Sembra che Sierra abbia cambiato il comportamento predefinito (ho iniziato ad avere questo problema dopo l'aggiornamento).

Questo l'ho trovato particolarmente utile: https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061

ssh-add -A 

Ciò ha comportato l'aggiunta della mia identità all'agente, dopo l' esecuzione

ssh-add -K {/path/to/key}

Riassumendo, in OSX.12:

ssh-add -K {/path/to/key}
ssh-add -A 

dovrebbe comportare:

Identity added: {/path/to/file} ({/path/to/file})

EDIT: ho notato che la prossima volta che ho fatto un riavvio completo (ovvero l'agente si è fermato e riavviato) questo non ha più funzionato. La soluzione più completa è ciò che @ChrisJF ha menzionato sopra: la creazione di un ~/.ssh/configfile. Ecco il mio output:

$ cat ~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

È possibile aggiungere tutte le IdentityFilevoci necessarie, ma questa è l'impostazione predefinita. Questa è la risposta "di tendenza" sul link openradar sopra, anche su ATM.


Quello modificato ha risolto il mio problema. MacOS Mojave 10.14.3
Jose

4

Ha funzionato in LinuxMint / Ubuntu

Procedi come segue

Passo 1:

Vai a file => /.ssh/config

Salvare le righe seguenti nel file

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /home/apple/myssh-privatekey
    AddKeysToAgent yes

Non dimenticare di aggiungere questa riga AddKeysToAgent yes

Passo 2:

Apri il terminale e aggiungi il keyset a ssh-add

$ ssh-add -k /home/apple/myssh-privatekey

fornire la passphrase.


3

Avevo già impostato una passphrase ma per qualche motivo non l'avrebbe riconosciuta più. Quindi ho appena aggiunto di nuovo il file di identità al mio portachiavi usando ssh-add -Ke ha smesso di chiedere la mia password.


questo carica solo chiavi e non certificati
numediaweb il

3

Questo è ciò che ha funzionato per me:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"

2

Il problema sembra essere dovuto alla clonazione da HTTPS e non da SSH. Ho provato tutte le altre soluzioni qui ma continuavo a riscontrare problemi. Questo è stato per me.

Usando osxkeychain helpercosì:

  1. Scopri se lo hai installato.

    git credential-osxkeychain

  2. Se non è installato, ti verrà richiesto di scaricarlo come parte degli strumenti della riga di comando di Xcode.

  3. Se è installato, dire a Git di usare osxkeychain helperusando la credential.helperconfigurazione globale :

    git config --global credential.helper osxkeychain

Alla successiva clonazione di un URL HTTPS, ti verrà richiesto il nome utente / la password e di concedere l'accesso al portachiavi OSX. Dopo averlo fatto la prima volta, dovrebbe essere salvato nel tuo portachiavi e non dovrai digitarlo di nuovo.


2

Questa risposta è principalmente per gli utenti di Windows e ugualmente rilevante se hai problemi a clonare con tfs, github o gitlab su qualsiasi altro sistema operativo.

La modalità di autenticazione predefinita quando si utilizza SSH è la chiave privata. Ogni volta che ciò fallisce per qualche motivo, l'agente ssh ritorna all'autenticazione basata su nome utente e password.

Esistono diversi motivi per cui l'autenticazione basata su chiave predefinita potrebbe non essere riuscita. Di seguito sono riportati i casi più comuni:

a) L'agente ssh non riesce a trovare il file della chiave privata predefinito che è id_rsa e nessun altro percorso di chiave viene specificato in modo esplicito.

b) La chiave pubblica memorizzata nel server non è corretta.

c) Il percorso che stai tentando di clonare non è corretto.

In ogni caso, per risolvere il problema prima di tutto eseguire il comando git clone con registrazione dettagliata con il comando:

GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo

Puoi passare attraverso ogni passaggio nel registro per ottenere un'intuizione di quale potrebbe essere il problema.


Risoluzione dei problemi in caso di (a)

  • Assicurati di avere il nome chiave predefinito id_rsa nella directory .ssh. Potresti aver specificato un nome chiave diverso durante la generazione della chiave con il comando ssh-keygen o forse non esiste alcuna chiave).
  • Nel caso in cui si desideri specificare una chiave diversa per l'autenticazione, utilizzare il comando seguente:

    ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
    

Risoluzione dei problemi in caso di (b)

  • Assicurarsi che non vi siano spazi bianchi extra quando si memorizza la chiave pubblica nel server.

Risoluzione dei problemi in caso di (c)

  • Assicurati di non provare a clonare con la versione https del percorso del repository.

1

Se stai usando ssh url per git, quando ti viene richiesta la password per ssh inserisci il nome utente come " git " e la password come password di accesso del tuo sistema


Modifica repository digitare l'URL a distanza dal HTTPSal SSHrisolto il mio problema. Grazie @MichaelR, il tuo articolo è stato davvero utile, anche se non ne ho letto nulla: D
Geradlus_RU,

1

Vorrei aggiungere una risposta per coloro che potrebbero aver ancora bisogno di inserire la password perché hanno impostato IdentitiesSolo su Sì. Ciò può essere causato da più chiavi e dal file di identità, essendo chiavi per git o server.

Dopo aver generato la chiave e copiata sul server:

ssh-keygen
ssh-copy-id -i ~/.ssh/12gpu_server.pub lerner@192.168.20.160

Ho scoperto che non ha funzionato.

Poi sono andato a controllare il ~/.ssh/configfile, ho visto questo in fondo:

Host *
IdentitiesOnly yes

Quindi aggiungo questo sopra:

Host 12gpu
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/12gpu_server

Posso semplicemente accedere inserendo ssh 12gpu.

Quindi puoi aggiungere più chiavi SSH usando i tuoi nomi preferiti e devi solo aggiungere le impostazioni come le quattro righe sopra al file di configurazione.

Host è il nome che desideri inserire quando ti connetti al server in un secondo momento; il NomeHost è IP del server o il dominio come github.com; Utente è il nome utente che accedi al server come il nome utente o git per github o gitlab; e IdentityFile è il file in cui è memorizzata la chiave generata.


1

In genere, ecco i passaggi per consentire di effettuare una connessione remota al server utilizzando ssh senza password:

  • Crea una coppia di chiave pubblica e privata rsa

    $ ssh-keygen -t rsa -b 4096 -C "your comments"
    
  • Copia la tua chiave pubblica e accedi al tuo server remoto

  • Aggiungi la tua chiave pubblica a .ssh / authorized_keys

  • Se hai più chiavi ssh nel tuo computer, potresti aggiungere la tua chiave usando ssh-add

    $ ssh-add /path/to/private/key

  • Quindi prova ssh sul tuo server

    $ ssh username@your_ip_address

Fonte: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html


0

Utilizzare sshl'URL remoto fornito da Github no https.


L'OP ha chiaramente affermato che sta usando SSH invece di HTTPS.
lento

0

Se stai usando Windows e GIT senza strumenti di terze parti e la tua chiave non è protetta da una password / passphrase, usa questo:

  1. La variabile di ambiente HOME deve essere impostata sul profilo utente (ad es. C: \ Users \ Laptop)
  2. Vai alla cartella C: \ Users \ Laptop \ .ssh \ e modifica il file "config" (o crea il file!) Esempio: C: \ Users \ Laptop.ssh ​​\ config (nota: alla fine non c'è!)
  3. Aggiungi il tuo host git-server al file "config" in questo modo:

    #Example host entry
    Host myhostname.com
        HostName myhostname.com
        User git
        IdentityFile c:/users/laptop/.ssh/id_rsa.pub
        PasswordAuthentication no
        Port 422
    
  4. Salvare il file e clonare il repository in questo modo:

    git clone ssh: //myhostname.com/git-server/repos/picalc.git

È possibile utilizzare parametri di configurazione aggiuntivi per la voce host del file "config". Questi possono essere trovati nella cartella di installazione di git locale, ad esempio " C: \ Programmi \ Git \ etc \ ssh \ ssh_config ". Estratto:

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h

0

Lo stesso problema per me e la soluzione era:

Vedi questo documento github per convertire l'URL del telecomando da https a ssh. Per verificare se l'URL del telecomando è ssh o https, usa git remote -v. Per passare da https a ssh: git remote set-url origin git@github.com: USERNAME / REPOSITORY.git @jeeYem


0

Mobaxterme aveva un'interfaccia utente per questo

setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]


0

Chiave SSH - Ancora chiedendo password e passphrase

Se su Windows e usando PuTTY come generatore di chiavi SSH , questa soluzione semplice e veloce si è rivelata l'unica soluzione funzionante per me usando una semplice riga di comando di Windows:

  1. L'installazione di PuTTY dovrebbe venire con diversi eseguibili, tra gli altri, pageant.exeeplink.exe
  2. Quando si genera una chiave SSH con PuttyGen, la chiave viene memorizzata con l' .ppkestensione
  3. Esegui "full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"( deve essere citato). Questo eseguirà il pageantservizio e registrerà la chiave (dopo aver inserito la password).
  4. Imposta la variabile di ambiente GIT_SSH=full\path\to\plink.exe( non deve essere quotata). Questo reindirizzerà i comandi relativi a git ssh-communication plinkche utilizzeranno il pageantservizio per l'autenticazione senza richiedere nuovamente la password.

Fatto!

Nota 1: questa documentazione avverte di alcune peculiarità quando si lavora con le GIT_SHHimpostazioni della variabile di ambiente. Posso push, pull, fetchcon qualsiasi numero di parametri aggiuntivi per il comando e tutto funziona bene per me (senza bisogno di scrivere uno script extra come esso suggerito).

Nota 2: il percorso verso l' PuTTYinstallazione è in genere in PATHmodo da poter essere omesso. Comunque, preferisco specificare i percorsi completi.

Automazione:

Il seguente file batch può essere eseguito prima di usare git dalla riga di comando. Illustra l'utilizzo delle impostazioni:

git-init.bat
   @ECHO OFF
   :: Use start since the call is blocking
   START "%ProgramFiles%\PuTTY\pageant.exe" "%HOMEDRIVE%%HOMEPATH%\.ssh\id_ed00000.ppk"
   SET GIT_SSH=%ProgramFiles%\PuTTY\plink.exe

Comunque, ho la GIT_SSHvariabile impostata SystemPropertiesAdvanced.exe > Environment variablese pageant.exeaggiunta come Runchiave di registro (*).

(*) Passaggi per aggiungere una Runchiave di registro>

  1. correre regedit.exe
  2. Navigare verso HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
  3. Fare (menu) Edit > New > String Value
  4. Inserisci un nome arbitrario (ma univoco)
  5. Do (menu) Edit > Modify...(o doppio clic)
  6. Immettere il percorso racchiuso tra virgolette pageant.exee public key, ad esempio, "C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"(notare che le %ProgramFiles%variabili ecc. Non funzionano qui a meno che non si scelga Expandable string valueal posto del String valuepassaggio 3.).


-1

Penso che la risposta di @sudo bangbang dovrebbe essere accettata.

Quando si genera il tasto SSH, è sufficiente premere "Invio" per saltare la digitazione della password quando viene richiesto di configurare la password.

Ciò significa che NON AVETE BISOGNO di una password quando usate il tasto ssh, quindi ricordate quando generate il tasto ssh, NON inserire la password, premete semplicemente 'Invio' per saltare.


1
Questo è un brutto suggerimento. Vedi il commento di @ user456814
Sos
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.