Non c'è no direct modo per dire a git
quale chiave privata utilizzare, perché si basa su ssh
per l'autenticazione del repository. Tuttavia, ci sono ancora alcuni modi per raggiungere il vostro obiettivo:
Opzione 1: ssh-agent
Potete usare ssh-agent
per autorizzare temporaneamente la vostra chiave privata.
Per esempio:
$ ssh-agent sh -c 'ssh-add ~/.ssh/id_rsa; git fetch user@host'
Opzione 2: GIT_SSH_COMMAND
Passate gli argomenti ssh usando la variabile d'ambiente GIT_SSH_COMMAND
(Git 2.3.0+).
Per esempio:
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' \
git clone user@host
``` ```
$ echo 'ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $*' > ssh
$ chmod +x ssh
$ GIT_TRACE=1 GIT_SSH='./ssh' git clone user@host
Si può digitare tutto su una sola riga - ignorare $
e tralasciare Non c'è **no _direct_ modo** per dire a
gitquale chiave privata utilizzare, perché si basa su
ssh` per l'autenticazione del repository. Tuttavia, ci sono ancora alcuni modi per raggiungere il vostro obiettivo:
Opzione 1: ssh-agent
Potete usare ssh-agent
per autorizzare temporaneamente la vostra chiave privata.
Per esempio:
$ ssh-agent sh -c 'ssh-add ~/.ssh/id_rsa; git fetch user@host'
Opzione 2: GIT_SSH_COMMAND
Passate gli argomenti ssh usando la variabile d'ambiente GIT_SSH_COMMAND
(Git 2.3.0+).
Per esempio:
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' \
git clone user@host
``` ```
$ echo 'ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $*' > ssh
$ chmod +x ssh
$ GIT_TRACE=1 GIT_SSH='./ssh' git clone user@host
Si può digitare tutto su una sola riga - ignorare $
e tralasciare .
Opzione 3: GIT_SSH
Passare gli argomenti ssh usando la variabile d'ambiente GIT_SSH
per specificare il binario alternativo ssh
.
Per esempio:
Host github.com
User git
Hostname github.com
IdentityFile ~/.ssh/id_rsa
Nota: Le righe di cui sopra sono linee di comando shell (terminale) che si devono incollare nel terminale. Esse creeranno un file chiamato ssh
, lo renderanno eseguibile e (indirettamente) lo eseguiranno.
Nota: GIT_SSH
è disponibile dalla v0.99.4 (2005).
Opzione 4: ~/.ssh/config
Utilizzare il file ~/.ssh/config
come suggerito in altre risposte per specificare la posizione della vostra chiave privata, ad esempio
&001