Подтвердить что ты не робот

Настройка настраиваемого пути для git частного SSH-ключа в linux

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

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

4b9b3361

Ответ 1

Один из вариантов - использовать ssh-agent и предоставить имя файла ssh-add.

Например:

$ ssh-agent /bin/bash
$ ssh-add ~/mykeys/id_rsa

Ответ 2

Вы можете достичь этого, используя файл конфигурации ssh.

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

$ nano ~/.ssh/config

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

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

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

Ответ 3

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

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

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

страница GitTips говорит о создании обертки script и указывает на нее с переменной среды GIT_SSH.

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

Ответ 4

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

ssh-agent bash -c 'ssh-add /home/me/my_private_key; git clone [email protected]:uname/test-git-repo.git'

Ответ 5

Для проекта, над которым я работаю, мое приложение должно выплевывать оболочку script со всеми командами git для init/commit/push во внешний репозиторий. Конфигурация ~/.ssh/config отключена, поэтому у меня есть общедоступные/частные ключи в моем каталоге приложений. Я использовал vhallac ответ. Это то, что я должен был сделать в своей оболочке script, чтобы использовать мой ключ:

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

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