Ще один варіант, який задають різні ключі, - це git config core.sshCommand
git 2.10 + (Q3 2016).
Це є альтернативою змінної оточення , описаної в Борисі «s відповідь )
Див. Команду 3c8ede3 (26 червня 2016 р.) Від Nguyễn Thái Ngọc Duy ( pclouds
) .
(Об’єднав Хуніо С Хамано - gitster
- в комісії dc21164 , 19 липня 2016 р.)
Нова змінна конфігурація core.sshCommand
Додана щоб вказати, яке значення для GIT_SSH_COMMAND використовувати для кожного сховища.
Подібно до $GIT_ASKPASS
або $GIT_PROXY_COMMAND
, ми також читаємо спочатку з конфігураційного файлу, а потім переходимо до $GIT_SSH_COMMAND
.
Це корисно для вибору різних приватних ключів, націлених на одного хоста (наприклад, github)
core.sshCommand:
Якщо ця змінна встановлена git fetch
і git push
буде використовувати вказану команду замість того, ssh
коли їм потрібно підключитися до віддаленої системи.
Команда виконана в тому ж вигляді, що GIT_SSH_COMMAND
і змінна середовища, і вона перекривається, коли встановлена змінна середовище.
Це означає, що git clone
може бути:
cd /path/to/my/repo
git config core.sshCommand 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
# later on
git clone host:repo.git
Якщо ви хочете застосувати це для всіх репостів , як додає користувач1300959 у коментарях , ви б використали глобальну конфігурацію.
git config --global core.sshCommand 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'