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 agitquale chiave privata utilizzare, perché si basa sussh` 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