之前多次上传到Heroku,这次不知道出了什么问题 - 也许是因为我正在使用公共互联网?
无论如何,我添加了一个新的公钥
>heroku keys:add
Found existing public key: C:/Users/Chris/.ssh/id_rsa.pub
Uploading SSH public key C:/Users/Chris/.ssh/id_rsa.pub...done
>git push heroku master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
为什么我不能推送到heroku?
我检查了我的钥匙
heroku键
我的终端正确,所以它应该工作。任何人都有所了解?
答案 0 :(得分:4)
也许ssh会话不知道在哪里可以找到与您的公钥相关联的私有密钥,如果%HOME%
未定义到C:/Users/Chris
,则可能会发生这种情况。
(请记住,Windows上没有默认定义HOME
)
你可以:
%HOME%/.ssh/config
文件Host heroku Hostname heroku.com Port 22 IdentitiesOnly yes IdentityFile /C/Users/Chris/.ssh/id_rsa # location and name of your private key TCPKeepAlive yes User git
.ssh
和密钥)。git clone heroku:yourRepo
答案 1 :(得分:2)
你正在使用Git推送你的更改,而Git使用SSH,而不是Heroku。
根据我的经验,运行heroku keys
不会提供有关加载到SSH身份验证代理中的身份的信息。为此,您需要运行ssh-add -l
,它将列出加载到其中的所有身份指纹。
要将一个标识加载到SSH身份验证代理中,您需要运行:ssh-add -K ~/.ssh/your_private_key
。使用 -K 会将密码保存在您的钥匙串中。
如果您在远程Heroku服务器中也有公钥,这将有效。