gpt4 book ai didi

git - 将提交推送到亚马逊 ec2 时权限被拒绝(公钥)

转载 作者:行者123 更新时间:2023-12-02 13:57:25 29 4
gpt4 key购买 nike

我知道这里有很多类似的问题(我在发布这个之前阅读了很多),但是这个不同,所以请多陪我一会儿。

几天前,我在亚马逊 ec2 上配置了我的远程 git 存储库。经过数小时的努力,我让它工作并能够 push那里的文件。我正在使用它一两天,没有任何问题地向它推送资源(我正确地看到了每个更新)。

今天,由于某种原因,我无法从本地机器向它推送任何内容。
git push deploy最终出现以下错误消息(当我尝试获取有关部署的信息时看到的相同: git remote show deploy ):

warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

它的第一部分(在许可被拒绝之前)我以前能够看到,但当时它仍然正确地 push 了一切。

部署存在是因为我可以通过 git remote -v 清楚地看到它:
deploy  ssh://ubuntu@X.X.X.X/home/ubuntu/repo (fetch)
deploy ssh://ubuntu@X.X.X.X/home/ubuntu/repo (push)

我可以正确地 ssh 到我的服务器,我的私钥也有 0400权限。在两台机器上我都有 ubuntu 12.04 LTS .

我认为我的公钥可能有问题,所以我继续从私钥重新创建它: ssh-keygen -y -f key.pem > key.pub .基于其 sha它与我之前的公钥相同: sha1sum key_prev.pub = sha1sum key.pub
我仍然去服务器并为授权 key 添加了一个新 key 。

仍然没有变化。我不能推任何东西。谁能告诉我这里有什么问题以及为什么会发生?我需要对本地 .ssh/known_hosts 做任何事情吗? ?

同样在其中一个答案中,我发现了以下内容:

Please note that after restarting the instance, the dns name changed. I fell for this several times. The keyfile was still valid, but the "servername" changed.



我实际上重新启动了我的机器,所以我认为这是高度相关的。问题是我不明白我现在应该改变什么。

阅读VonC的答案后。

我无法通过 ssh ubuntu@X.X.X.X 连接到服务器(我得到了 Permission denied (publickey). ),但我可以用 ssh myAlias 做到这一点,其中 myAlias 在 ~/.ssh/config 中定义
Host            myAlias
Hostname X.X.X.X
User ubuntu
IdentityFile path/to/mypem/file.pem

当我完成 git config --global push.default simple我在做 git push deploy 时遇到另一个问题:

fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use

git push --set-upstream deploy master



我会尝试做 ssh -Tvv ubuntu@X.X.X.X并会告诉它是怎么回事。

最佳答案

首先,帮自己一个忙,然后输入 git config --global push.default simple为了看不到错误的第一部分。

二、如果能用ssh ubuntu@X.X.X.X登陆成功,那么您的 key 以及实例名称都可以。

如果不能,您可以:

  • 试试 ssh -Tvv ubuntu@X.X.X.X看看发生了什么,和
  • 通过转到服务器验证 stopping sshd并在 Debug模式下重新启动它( /usr/sbin/sshd -d ):它将只接收一个 ssh 连接:尝试来自您的客户端的 ssh ubuntu@X.X.X.X,您应该会看到 sshd 响应。
    然后重启sshd一般。


  • 在您的情况下,您必须使用在 ~/.ssh/config 中定义的别名。 ,因为您的 key 不是标准 key 。

    为了 push 顺利进行,请执行 git push -u deploy master .

    由于 git remote -v返回:
    deploy  ssh://ubuntu@X.X.X.X/home/ubuntu/repo (fetch)
    deploy ssh://ubuntu@X.X.X.X/home/ubuntu/repo (push)

    这意味着你 不是 使用 ssh 别名。

    类型:
    git remote set-url deploy myAlias:/home/ubuntu/repo

    (语法很重要: myAlias: 后跟 repo 路径)

    然后再试一次 git push .

    关于git - 将提交推送到亚马逊 ec2 时权限被拒绝(公钥),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22738196/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com