我正在尝试使用以下命令行将代码部署到heroku:
git push heroku master
但会出现以下错误:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
我已经上传了我的公共SSH密钥,但仍然会出现此错误。
我正在尝试使用以下命令行将代码部署到heroku:
git push heroku master
但会出现以下错误:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
我已经上传了我的公共SSH密钥,但仍然会出现此错误。
当前回答
如果要使用“sudo”,例如:
sudo git clone git@heroku.com......... -o heroku
您还应该为root用户生成ssh密钥。
sudo su
cd /root/.ssh
ssh-keygen -t rsa
....
heroku keys:add id_rsa.pub
它会奏效的。
如果不使用root用户,请在用户目录中生成ssh密钥。
cd /home/user/.ssh
对不起,如果我的句子搞砸了。。。
其他回答
我花了三天的时间尝试各种可能的组合,试图让它发挥作用——我最终尝试了制作DSA密钥,结果成功了。
如果不适合您,请尝试DSA而不是RSA。
(我使用的是Ubuntu 11.10、ruby 1.8.7、heroku 2.15.1)
我重新安装了heroku工具带,它工作了。
我只想补充一点,该目录不一定是C:\Users\[用户名]\.ssh。它是您在其中创建公钥的目录。
例如,我在Windows中的主目录已更改为C:\[用户名]。ssh子文件夹中的主目录是创建密钥的最佳位置,也是最可能的位置。您可以使用以下命令检查Windows中的主目录:
echo %HOMEPATH%
我也有这个问题。我正在使用Mac OSX。我解决的方法是以管理员身份登录
获取权限暗语
检查heroku的.ssh配置。转到.ssh文件夹并打开配置文件
cd ~/.ssh
subl config
“subl”用于Sublime文本,但您可以使用任何您想要的编辑器。查找“IdentityFile”行,并确保它列出了非公钥:
IdentityFile "/Users/ircmullaney/.ssh/my_ssh"
not
IdentityFile "/Users/ircmullaney/.ssh/my_ssh.pub"
这对我来说很有用。我不知道为什么我的配置文件中有公共版本,但它确实有,并且抛出了错误:
Permissions 0644 for '/Users/ircmullaney/.ssh/my_ssh.pub' are too open.