【问题标题】:git clone heroku ssh permission deniedgit clone heroku ssh 权限被拒绝
【发布时间】:2010-08-28 14:26:55
【问题描述】:

我刚买了一台新电脑,我正在尝试在上面克隆我的 heroku 项目。

这是我到目前为止所做的。我没有包含跟踪,但所有内容都保存在正确的位置,并且函数运行没有错误。

>> sudo ssh-keygen
>> heroku keys:add
>> sudo git clone -o heroku git@heroku.com:myapp.git

Initialized empty Git repository in /Users/macuser/Sites/shwagr/shwagr/.git/
Permission denied (publickey).

然后我听说是通过 ssh bash 来做的..

>ssh-agent bash
>ssh-add ~/.ssh

Permissions 0777 for '/Users/macuser/.ssh' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

什么?好的爸爸..

>>sudo chmod 700 ~/.ssh
>>ssh-agent bash
>>ssh-add ~/.ssh
Enter passphrase for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh: 
Bad passphrase, try again for /Users/macuser/.ssh:

不确定这里的密码是什么,但肯定不是我设置的。如果我只是按回车键,它会退出,但这并没有给我留下它有效的印象。因此,它仍然不允许我克隆存储库。

有什么想法吗?

更新 我进入我的 ~/.ssh 文件并执行 ssh-keygen -t rsa 并创建了一个名为 love 的新密钥。然后我heroku keys:add love.pub成功了。

然后我去 git clone..

sudo git clone -o heroku git@heroku.com:mysite.git

Initialized empty Git repository in /Users/macuser/Sites/shwagr/shwagr/.git/
Permission denied (publickey).

更新 2

我删除了 ~/.ssh,并在没有 sudo 的情况下重新创建了它。然后我从 heroku 中删除了我今天创建的所有密钥,并重新启动了该过程。

同样的错误。

更新 3

>>heroku keys

  No Keys for this computer.

>>sudo heroku keys

  No Keys for this computer

>>heroku keys:add

>>heroku keys

ssh-rsa AAAA...J67lw== macuser@Mac-Users-MacBook-Pro.local

将这些键与我的键进行比较:它们是相同的。 :D

权限被拒绝。

尝试 4

heroku 键:清除 rm -rf ~/.ssh mkdir ~/.ssh cd ~/.ssh ssh-keygen -t rsa heroku 键:添加 cd /用户/macuser/站点/ sudo git clone -o heroku git@heroku.com:shwagr.git

失败。

致命:远端意外挂断

巨大的更新

刚刚发现 git repo 实际上是空的。它只是一个符号链接(当您附加一个真实的域时,它仍然使用旧的作为真正的 repo)。因此,当我提取 Heroku 的一个默认名称(如 smooth-buttery-back-52.git )时,它提取并工作,实际上是我的存储库。

【问题讨论】:

  • ok heroku keys:remove your_user@your_host 删除您现在所在主机的当前密钥。然后做heroku keys 进行验证。然后再次执行heroku keys:add 以重新添加它。然后使用heroku keys 再次验证 - 将它显示的密钥与您的~/.ssh/id_rsa.pub 进行比较。
  • 如有必要,您是否使用sudo 进行了rm -rf /Users/macuser/Sites/shwagr/shwagr/.git/?您的克隆命令也如下所示:git clone git@heroku.com:mysite.git -o heroku?
  • 告诉我,除了您的 rsa 之外,您还有生成的密钥吗?我似乎记得有人在默认情况下使用他们的 dsa 密钥时遇到问题(您可以在.ssh/config 中将默认值设置为 rsa),而且您可能不希望将密钥命名为 id_TYPE.pub 以外的任何其他名称,否则您将也必须为此做一些配置设置。
  • 我只是想到了一些事情...尝试将您的~/.heroku 目录移开并重新设置...我认为那里没有任何东西会弄乱它,但也许试一试。此外,如果您有 ~/.gitconfig,请确保其中没有任何冲突。
  • 嗯,是的,事实证明那个 git repo 中没有任何内容,而且我的密钥确实有效。我为该应用程序命名了,而 repo 实际上并没有以该名称保存,它保存在它出现的默认名称上。我是慢热型。非常感谢prodigitalson。享受我要给你的业力。

标签: ruby-on-rails git ssh heroku git-clone


【解决方案1】:

我按照 heroku 提供的步骤进行操作,并且成功了。生成 ssh 密钥后(文件的名称无关紧要),只需执行以下操作:

> heroku login
> heroku keys:add

第一条语句提示您输入 heroku 用户名/密码。一旦您通过身份验证,运行第二个命令会选择您的所有公钥并将其推送到 heroku.com。之后你可以运行 git clone ,它会像一个魅力一样工作!

【讨论】:

  • 嗯,实际上“heroku 登录”对我有用。无需再次添加密钥。谢谢。
【解决方案2】:
>> sudo ssh-keygen

没有。放弃 sudo。这将为 root 用户创建密钥,而不是您的用户。好吧,当然除非出于某种奇怪的原因您想使用root。但是,您需要在所有将使用此键的相关命令前加上 sudo

【讨论】:

  • 备份您的 ssh 配置:mv ~/.ssh ~/ssh.bak(必要时使用 sudo,因为您可能无意中将自己锁定了)。然后再次ssh-keygen。如果您在 ssh.back/config 中有任何特殊设置,请将其复制回新生成的。
  • 因为你刚买了一台新电脑。恢复它并且永远不要使用sudo,除非你真的必须这样做。使用 rvm 和 homebrew 并留在本地 :) 你正式进入权限地狱。
  • 我认为 Jed 说的第二点,虽然我认为你不应该放弃 sudo,但你应该了解它的含义和含义,然后在必要时使用它。我也推荐 macports 而不是自制软件,但这确实是个人喜好。
  • 谢谢你。。你救了我一些头发。我重建了我的 Mac 并使用 sudo 生成我的密钥,这导致 Heroku 呕吐。从 Heroku 中删除了我所有的密钥,使用 ssh-keygen 创建了一个新密钥,heroku keys:add 和我的 git push 就像一个冠军一样工作......
【解决方案3】:

https://devcenter.heroku.com/articles/keys#adding_keys_to_heroku 它对我有用:

$ heroku 键:添加

【讨论】:

    【解决方案4】:

    如果你已经完成了

    heroku keys:add
    

    还是报错,请尝试

    ssh-add
    

    【讨论】:

      【解决方案5】:

      这是 heroku 管理您帐户的插件。 https://github.com/ddollar/heroku-accounts

      【讨论】:

        【解决方案6】:

        您为您的 sudo 帐户创建了一个密钥,但没有为您的用户帐户创建一个密钥,并且您没有 sudo heroku keys:add 所以它上传了本地用户密钥而不是 sudo 密钥,我猜。为什么您希望您的主目录中的本地应用程序仍然具有 sudo 权限?我可能会 x sudo 并按照本教程作为您的用户进行操作:http://docs.heroku.com/keys

        【讨论】:

        • 它不会让我>>打开爱失败:权限被拒绝。保存密钥失败:爱。
        • @Trip:请参阅我对如何修复的答案的评论...您此时对此感到厌烦,需要从太空中对其进行核弹...这是确定的唯一方法。
        • 我做了并更新了我的答案。同样的问题。有权限炼狱吗?
        猜你喜欢
        • 1970-01-01
        • 2011-12-15
        • 2018-04-15
        • 1970-01-01
        • 2021-11-09
        • 2015-12-25
        • 2021-11-11
        • 2015-10-29
        • 2012-12-29
        相关资源
        最近更新 更多