Nie ma nie ma direct sposobu, aby powiedzieć git
, którego klucza prywatnego użyć, ponieważ opiera się na ssh
do uwierzytelniania repozytorium. Istnieje jednak kilka sposobów na osiągnięcie celu:
Opcja 1: ssh-agent
Możesz użyć ssh-agent
do tymczasowej autoryzacji 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 używając zmiennej środowiskowej GIT_SSH_COMMAND
(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 jednej linii - zignoruj $
i pomiń Nie ma **nie ma _direct_ sposobu**, aby powiedzieć
git, którego klucza prywatnego użyć, ponieważ opiera się na
ssh` do uwierzytelniania repozytorium. Istnieje jednak kilka sposobów na osiągnięcie celu:
Opcja 1: ssh-agent
Możesz użyć ssh-agent
do tymczasowej autoryzacji 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 używając zmiennej środowiskowej GIT_SSH_COMMAND
(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 jednej linii - zignoruj $
i pomiń .
Opcja 3: GIT_SSH
Podaj argumenty ssh używając zmiennej środowiskowej GIT_SSH
do określenia alternatywy binarnej ssh
.
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 linie poleceń powłoki (terminalu), które należy wkleić do terminala. Stworzą one plik o nazwie ssh
, uczynią go wykonywalnym i (pośrednio) wykonają go.
Uwaga: GIT_SSH
jest dostępne od v0.99.4 (2005).
Opcja 4: ~/.ssh/config
Użyj pliku ~/.ssh/config
, jak sugerowano w innych odpowiedziach, aby określić lokalizację Twojego klucza prywatnego, np.