Nie ma bezpośredniego sposobu na określenie, git
którego klucza prywatnego użyć, ponieważ polega on ssh
na uwierzytelnianiu repozytorium. Istnieje jednak kilka sposobów na osiągnięcie celu:
Opcja 1: ssh-agent
Możesz użyć ssh-agent
do tymczasowej autoryzacji swojego klucza prywatnego.
Na przykład:
$ ssh-agent sh -c 'ssh-add ~/.ssh/id_rsa; git fetch user@host'
Opcja 2: GIT_SSH_COMMAND
Przekaż argumenty ssh przy użyciu GIT_SSH_COMMAND
zmiennej środowiskowej (Git 2.3.0+).
Na przykład:
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' \
git clone user@host
Możesz wpisać to wszystko w jednym wierszu - zignoruj $
i pomiń \
.
Opcja 3: GIT_SSH
Przekaż argumenty ssh za pomocą GIT_SSH
zmiennej środowiskowej, aby określić alternatywny ssh
plik binarny.
Na przykład:
$ 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
Uwaga: powyższe linie to wiersze poleceń powłoki (terminala), które należy wkleić do terminala. Utworzą plik o nazwie ssh
, sprawią, że będzie wykonywalny i (pośrednio) go uruchomią.
Uwaga: GIT_SSH
jest dostępny od wersji 0.9.4 (2005).
Opcja 4: ~/.ssh/config
Użyj ~/.ssh/config
pliku zgodnie z sugestią zawartą w innych odpowiedziach, aby określić lokalizację klucza prywatnego, np
Host github.com
User git
Hostname github.com
IdentityFile ~/.ssh/id_rsa