在VISTA上git push heroku master权限被拒绝

KT.*_*KT. 9 git ssh github heroku public-key

(使用Vista)我正在尝试从我的GitHub存储库中克隆一个应用程序并将其推入Heroku.好的,所以我尝试用这样多次创建一个SSH密钥:

 `ssh-keygen -t rsa` 
Run Code Online (Sandbox Code Playgroud)

它看起来很完美.我在我的C:/ Users/***/.ssh文件夹中有它.我现在尝试克隆我在GitHub中分叉的应用程序.当我尝试在rails_apps目录中克隆它时,我收到一条消息说

 Permission Denied(public key). 
Run Code Online (Sandbox Code Playgroud)

我在网上找到了一个解决方案,说我应该首先运行它:

`ssh-add` 
Run Code Online (Sandbox Code Playgroud)

所以我试着这样做.但它说:

无法打开与身份验证代理的连接.

然后经过一些谷歌搜索后,我发现了一些关于执行ssh-agent的事情.所以我这样做:

`ssh-agent bash`
Run Code Online (Sandbox Code Playgroud)

并且命令行从我的rails_apps目录更改为:

`bash3.1$>`
Run Code Online (Sandbox Code Playgroud)

所以我跑:

`bash3.1$>ssh-add [path to .ssh folder]`
Run Code Online (Sandbox Code Playgroud)

它成功添加了rsa私钥(它不能与id-rsa.pub一起使用).我还将新生成的公钥粘贴到我的GitHub帐户.

现在当我尝试克隆时:

`bash3.1$>git clone git@github.com:username/myrepo.git`
Run Code Online (Sandbox Code Playgroud)

它现在成功克隆了我在GitHub中分叉的repo.现在我在我的本地仓库中有应用程序,我尝试创建一个heroku应用程序.

`bash3.1$>cd myrepo`  
`bash3.1$>heroku create myapp`
Run Code Online (Sandbox Code Playgroud)

并且此代码成功运行.Git remote成功添加.现在我所要做的就是推动它.

`bash3.1$>git push heroku master`
Run Code Online (Sandbox Code Playgroud)

BAM!我再次收到错误消息.

Permission denied (public key)

我非常接近将我的应用程序推送到heroku.但它不会起作用.你能帮助我吗.我在这做错了什么?谢谢!:d

小智 61

我遇到了类似的问题.运行以下命令为我修复它:

heroku keys:add ~/.ssh/id_rsa.pub

用您的id_rsa.pub文件路径替换"〜/ .ssh/id_rsa.pub".


Von*_*onC 1

注意:您在 GitHub 支持上的票证提示了答案:

\n\n
\n

你需要给heroku你的钥匙。应该有一个命令来做到这一点。如果找不到它,则必须联系他们的支持人员。

\n
\n\n

为此,请参阅Graeme Collins回答(以及Heroku 错误:“权限被拒绝(公钥)”):

\n\n
heroku keys:add ~/.ssh/id_rsa.pub\n
Run Code Online (Sandbox Code Playgroud)\n\n

有关该过程的更多信息,请参阅Heroku 开发中心。
\n然后您可以看到所有密钥的列表,包括密钥\xe2\x80\x99s 名称,如下所示:

\n\n
heroku keys\n
Run Code Online (Sandbox Code Playgroud)\n\n

注意:假设您没有使用 sudo 生成密钥,如“ git clone heroku ssh Permission Denied ”所示(其中heroku keys:add不起作用)

\n\n
\n\n

有关 ssh 密钥的更多信息,请参阅您的其他GitHub 支持票证

\n\n
debug1: Trying private key: /.ssh/identity\ndebug1: Trying private key: /.ssh/id_rsa\ndebug1: Trying private key: /.ssh/id_dsa\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

我不知道为什么它会看着/.ssh而不是~/.ssh然后。
\n 尝试将您的密钥对移动到该路径。

\n
\n\n
\n\n

难道不应该是:

\n\n
 git push origin master\n
Run Code Online (Sandbox Code Playgroud)\n\n

?默认情况下,对克隆存储库的引用称为“origin”,而不是“heroku”

\n\n

什么是

\n\n
git remote -v show\n
Run Code Online (Sandbox Code Playgroud)\n\n

展示?

\n\n

如果你愿意,你可以通过 heroku 名称引用远程仓库

\n\n
git remote add heroku git@github.com:git_username/projectname.git\n
Run Code Online (Sandbox Code Playgroud)\n