可以SSH到服务器但不是git push

时间:2017-07-02 20:07:06

标签: git ssh amazon-ec2

我无法推送到我的Amazon ec2实例上存储的远程git仓库。

我的本​​地ssh config文件的主机条目如下所示:

Host ec2
    HostName ec2-54-89-205-210.compute-1.amazonaws.com
    User ec2-user
    IdentityFile ~/.ssh/ec2TestB

所以我可以运行命令ssh ec2,我将成功连接到ec2

接下来,我在名为git repo的{​​{1}}文件夹中的ec2上创建了root。在我的本地计算机上,我创建了一个名为testGitRoot的{​​{1}}。然后我将git repo testGitLocalec2一起添加(我还试过了repo部分..不确定是否需要)。

当我跑git remote add origin ec2user@ec2-54-89-205-210.compute-1.amazonaws.com:/root/testGitRoot时,我得到了:

ec2user@

所以我的问题是我在这里缺少什么概念?如果我能够通过ssh与git push origin master进行连接,那为什么我无法推送我的回购?我不清楚的一点是,我采用的git设置步骤是如何使用Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 的。通常情况下,我总是推送到github,在这种情况下,我将ssh ec2 url设置为我的遥控器。在这种情况下,我只是将ssh ssh设置为远程,其中该网址仅为ec2。所以我甚至不确定如果 repo正在使用ec2Domain:path/to/git/repo,如果是,那么为什么它会在{{{{{{{ 1}}命令没有' t ??

2 个答案:

答案 0 :(得分:1)

此错误消息表示您无法进行身份验证。

这些是造成这种情况的常见原因:

  • 尝试连接错误的密钥。你确定这个实例正在使用这个密钥对吗?
  • 尝试使用错误的用户名进行连接。 ubuntu是基于Ubuntu的AWS发行版的用户名,但在其他一些发行版上ec2-user(或某些Debian上的admin
  • 尝试连接错误的主机。这是您尝试登录的正确主机吗?

请注意,如果您搞砸了EC2实例上的/home/<username>/.ssh/authorized_keys文件,也会发生这种情况。

关于2.,您应该使用的用户名信息通常缺少AMI图像说明。但您可以在AWS EC2文档中找到一些。

子弹点4.:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

答案 1 :(得分:1)

您使用用户{ "ignore": [ "ids" ] } 设置存储库,如ssh_config文件中所示:

ec2-user

但您将遥控器设置为使用其他用户名Host ec2 User ec2-user

ec2user

你说ssh有效,但是git没有。因此,git可能是用户名不正确的。

要解决此问题,只需更改远程网址,使其具有正确的用户名:

git remote add origin ec2user@ec2 ...