Setting a custom path for git private SSH key on linux

和自甴很熟 提交于 2020-05-24 08:24:05

问题


I'm trying to setup a git client on linux. I uploaded my private key to the machine, and I understand that I should put it in ~/.ssh, but I don't have access to that folder.

How can I tell git to look for the private key somewhere else?


回答1:


One option is to use ssh-agent and provide a file name to ssh-add.

For example:

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



回答2:


You can achieve that using a ssh config file.

First create a file inside your ~/.ssh folder named config, you can use some command like the following

$ nano ~/.ssh/config

Then, the content of the file should have the location of your key based on each host name. for example:

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

So, when git tries to access each host it will follow the rules inside this config file based on the git host your trying to reach




回答3:


I would have said put the file name in ~/.ssh/config, but you likely would not have access to this file, too.

You can give ssh the private key to use with the -i keyfile option.

Now how to say git which options to pass to ssh?

The GitTips page says create a wrapper script and point to it with the GIT_SSH environment variable.

It looks like you also can use the git configuration core.gitProxy, but I did not find a good example and some mailing list message suggests it is only for the git: protocol.




回答4:


Use ssh-agent

ssh-agent bash -c 'ssh-add /home/me/my_private_key; git clone git@bitbucket.org:uname/test-git-repo.git'



回答5:


For a project I am working on my app needs to spit out a shell script with all of the git commands to init/commit/push to an external repository. The ~/.ssh/config is off limits so I have my public/private keys in my app directory. I used vhallac's answer. This is what I had to do in my shell script to use my key:

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

hope this helps someone



来源:https://stackoverflow.com/questions/5323778/setting-a-custom-path-for-git-private-ssh-key-on-linux

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!