配置Git以使用特定位置的.pem密钥

时间:2015-06-22 05:43:56

标签: git ssh

每当我尝试做一个&gtt pull origin master'我得到了(它不是Github):

  

许可被拒绝(公钥)。

我可以通过SSH连接到我的AWS EC2 Linux服务器,该服务器具有裸存储库,当我收到上述权限错误时,我试图从中提取。

我确实已将公钥复制到该服务器,因为我可以通过ssh成功登录,但只能执行以下操作:

ssh -i /location/of/pemkey/mykey.pem ec2-user@ec2-12-34-56-78.us-east-compute.amazonaws.com

我需要配置Git才能使用我的' .pem'键。 我如何完成设置Git以利用我的' .pem'键?

3 个答案:

答案 0 :(得分:2)

来自git(1)手册页:

   GIT_SSH
       If this environment variable is set then git fetch and git push
       will use this command instead of ssh when they need to connect to a
       remote system. The $GIT_SSH command will be given exactly two or
       four arguments: the username@host (or just host) from the URL and
       the shell command to execute on that remote system, optionally
       preceded by -p (literally) and the port from the URL when it
       specifies something other than the default SSH port.

       To pass options to the program that you want to list in GIT_SSH you
       will need to wrap the program and options into a shell script, then
       set GIT_SSH to refer to the shell script.

       Usually it is easier to configure any desired options through your
       personal .ssh/config file. Please consult your ssh documentation
       for further details.

根据我的个人经验,在.ssh/config中添加主机设置的一次性费用已经产生了很大的不同,即使对于只有用户名不同的主机也是如此。

答案 1 :(得分:2)

我从here得到了这个,但这不是主要答案。 这里列出的说明对我来说更有用。

调整〜/ .ssh / config并添加:

Host example
Hostname example.com
User myuser
IdentityFile ~/.ssh/other_id_rsa

现在使用ssh主机别名作为您的存储库:

$ git remote add origin example:repository.git

$ git pull origin master

它应该使用other_id_rsa键!

答案 2 :(得分:1)

1. touch ~/.ssh/config
2. chmod 644 ~/.ssh/config
3. vim ~/.ssh/config
    #write next codeline
    host ec2-ip.eu-west-1.compute.amazonaws.com
    IdentityFile ~/Documents/ec2-user.pem

git clone git@ec2-ip.eu-west-1.compute.amazonaws.com:/home/git/my-repo.git