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".
注意:您在 GitHub 支持上的票证提示了答案:
\n\n\n\n\n你需要给heroku你的钥匙。应该有一个命令来做到这一点。如果找不到它,则必须联系他们的支持人员。
\n
为此,请参阅Graeme Collins的回答(以及Heroku 错误:“权限被拒绝(公钥)”):
\n\nheroku keys:add ~/.ssh/id_rsa.pub\nRun Code Online (Sandbox Code Playgroud)\n\n有关该过程的更多信息,请参阅Heroku 开发中心。
\n然后您可以看到所有密钥的列表,包括密钥\xe2\x80\x99s 名称,如下所示:
heroku keys\nRun Code Online (Sandbox Code Playgroud)\n\n注意:假设您没有使用 sudo 生成密钥,如“ git clone heroku ssh Permission Denied ”所示(其中heroku keys:add不起作用)
有关 ssh 密钥的更多信息,请参阅您的其他GitHub 支持票证。
\n\ndebug1: Trying private key: /.ssh/identity\ndebug1: Trying private key: /.ssh/id_rsa\ndebug1: Trying private key: /.ssh/id_dsa\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n我不知道为什么它会看着
\n/.ssh而不是~/.ssh然后。
\n 尝试将您的密钥对移动到该路径。
难道不应该是:
\n\n git push origin master\nRun Code Online (Sandbox Code Playgroud)\n\n?默认情况下,对克隆存储库的引用称为“origin”,而不是“heroku”
\n\n什么是
\n\ngit remote -v show\nRun Code Online (Sandbox Code Playgroud)\n\n展示?
\n\n如果你愿意,你可以通过 heroku 名称引用远程仓库
\n\ngit remote add heroku git@github.com:git_username/projectname.git\nRun Code Online (Sandbox Code Playgroud)\n