Установка пользовательского пути для частного ключа SSH git на linux - PullRequest
29 голосов
/ 16 марта 2011

Я пытаюсь настроить git-клиент на Linux. Я загрузил свой закрытый ключ на компьютер и понял, что должен поместить его в ~ / .ssh, но у меня нет доступа к этой папке.

Как я могу сказать git искать закрытый ключ где-то еще?

Ответы [ 5 ]

46 голосов
/ 28 апреля 2011

Вы можете добиться этого, используя ssh config * .

Сначала создайте файл внутри вашей папки ~/.ssh с именем config, вы можете использовать некоторую команду, такую ​​как следующая*

$ nano ~/.ssh/config

Затем содержимое файла должно иметь местоположение вашего ключа на основе каждого имени хоста.например:

Host github.com
 IdentityFile ~/myPublicKeyFolder/myGitHubFile
Host heroku.com
 IdentityFile ~/myPublicKeyFolder/myHerokuFile

Итак, когда git пытается получить доступ к каждому хосту, он будет следовать правилам в этом файле конфигурации, основываясь на хосте git, который вы пытаетесь достичь

41 голосов
/ 16 марта 2011

Можно использовать ssh-agent и указать имя файла для ssh-add.

Например:

$ ssh-agent /bin/bash
$ ssh-add ~/mykeys/id_rsa
11 голосов
/ 16 марта 2011

Я бы сказал, поместите имя файла в ~/.ssh/config, но, вероятно, у вас также не будет доступа к этому файлу.

Вы можете дать ssh закрытый ключиспользовать с параметром -i keyfile.

Теперь, как сказать git, какие параметры передавать в ssh?

Страница GitTips говорит, что создает скрипт-обертку и указывает наэто с переменной окружения GIT_SSH.

Похоже, вы также можете использовать конфигурацию git core.gitProxy, но я не нашел хорошего примера, и какое-то сообщение из списка рассылки предлагает этотолько для протокола git:.

4 голосов
/ 12 мая 2014

Использовать ssh-agent

ssh-agent bash -c 'ssh-add /home/me/my_private_key; git clone git@bitbucket.org:uname/test-git-repo.git'
1 голос
/ 08 марта 2013

Для проекта, над которым я работаю, мое приложение должно выпустить сценарий оболочки со всеми командами git для инициализации / принятия / отправки во внешний репозиторий. Файл ~ / .ssh / config запрещен, поэтому у меня есть открытый / закрытый ключи в каталоге приложения. Я использовал ответ Вальлака. Вот что я должен был сделать в своем скрипте, чтобы использовать мой ключ:

eval `/usr/bin/ssh-agent`
ssh-add /path/to/.ssh/id_rsa

надеюсь, это кому-нибудь поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...