我无法推送到我的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
testGitLocal
与ec2
一起添加(我还试过了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 ??
答案 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 ...