Там немає ні прямого способу сказати , git
який секретний ключ використовувати, тому що вона спирається на ssh
для аутентифікації в сховище. Однак є кілька способів досягти своєї мети:
Варіант 1: ssh-agent
Ви можете використовувати ssh-agent
для тимчасового авторизації приватного ключа.
Наприклад:
$ ssh-agent sh -c 'ssh-add ~/.ssh/id_rsa; git fetch user@host'
Варіант 2: GIT_SSH_COMMAND
Передайте ssh аргументи, використовуючи GIT_SSH_COMMAND
змінну оточення (Git 2.3.0+).
Наприклад:
$ GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' \
git clone user@host
Ви можете ввести все це в одному рядку - ігноруйте $
і не залишайте \
.
Варіант 3: GIT_SSH
Передайте ssh аргументи, використовуючи GIT_SSH
змінну оточення, щоб вказати альтернативну ssh
бінарну.
Наприклад:
$ 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
Примітка. Наведені вище рядки є командними рядками оболонки (терміналу), які слід вставити у свій термінал. Вони створять файл з ім’ям ssh
, зроблять його виконуваним та (опосередковано) його виконають.
Примітка: GIT_SSH
доступний з v0.99.4 (2005).
Варіант 4: ~/.ssh/config
Використовуйте ~/.ssh/config
файл, як пропонується в інших відповідях, щоб вказати місце вашого приватного ключа, наприклад
Host github.com
User git
Hostname github.com
IdentityFile ~/.ssh/id_rsa