Я пытаюсь настроить клиент git на linux. Я загрузил свой закрытый ключ на компьютер, и я понимаю, что я должен поместить его в ~/.ssh, но у меня нет доступа к этой папке.
Как я могу сказать git искать закрытый ключ в другом месте?
Я пытаюсь настроить клиент git на linux. Я загрузил свой закрытый ключ на компьютер, и я понимаю, что я должен поместить его в ~/.ssh, но у меня нет доступа к этой папке.
Как я могу сказать git искать закрытый ключ в другом месте?
Один из вариантов - использовать ssh-agent
и предоставить имя файла ssh-add
.
Например:
$ ssh-agent /bin/bash
$ ssh-add ~/mykeys/id_rsa
Вы можете достичь этого, используя файл конфигурации ssh.
Сначала создайте файл внутри папки ~/.ssh
с именем config
, вы можете использовать некоторую команду, например следующую
$ nano ~/.ssh/config
Затем содержимое файла должно содержать местоположение вашего ключа на основе каждого имени хоста. например:
Host github.com
IdentityFile ~/myPublicKeyFolder/myGitHubFile
Host heroku.com
IdentityFile ~/myPublicKeyFolder/myHerokuFile
Итак, когда git пытается получить доступ к каждому хосту, он будет следовать правилам внутри этого файла конфигурации на основе хоста git, пытающегося достичь
Я бы сказал, что поместить имя файла в ~/.ssh/config
, но у вас, вероятно, также не будет доступа к этому файлу.
Вы можете предоставить ssh
закрытый ключ для использования с опцией -i keyfile
.
Теперь, как сказать git, какие параметры передать ssh?
страница GitTips говорит о создании обертки script и указывает на нее с переменной среды GIT_SSH
.
Похоже, вы также можете использовать конфигурацию git core.gitProxy
, но я не нашел хорошего примера и какое-то сообщение списка рассылки предлагает только для протокола git:
.
Использовать ssh-agent
ssh-agent bash -c 'ssh-add /home/me/my_private_key; git clone [email protected]:uname/test-git-repo.git'
Для проекта, над которым я работаю, мое приложение должно выплевывать оболочку script со всеми командами git для init/commit/push во внешний репозиторий. Конфигурация ~/.ssh/config отключена, поэтому у меня есть общедоступные/частные ключи в моем каталоге приложений. Я использовал vhallac ответ. Это то, что я должен был сделать в своей оболочке script, чтобы использовать мой ключ:
eval `/usr/bin/ssh-agent`
ssh-add /path/to/.ssh/id_rsa
надеюсь, что это поможет кому-то