我正在尝试使用以下命令行将代码部署到heroku:

git push heroku master

但出现以下错误:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我已经上传了我的公共SSH密钥,但是它仍然出现此错误。


#1楼

我遇到了同样的问题,因为我没有公共密钥,所以我这样做了:

heroku keys:clear
heroku keys:add

这将生成一个公钥,然后运行良好


#2楼

如果要使用“ sudo”,则示例:

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

您还应该为根用户生成ssh密钥。

sudo su
cd /root/.ssh
ssh-keygen -t rsa
....
heroku keys:add id_rsa.pub

它会工作。

如果不使用root用户,请在用户目录中生成ssh密钥。

cd /home/user/.ssh

对不起,如果我的句子搞砸了...


#3楼

如果您已经上传了密钥,请尝试删除密钥,然后使用新密钥重新上传。

 heroku keys:remove //removes the existing keyssh-keygen -t rsa //generates a new key in ~/.ssh folderheroku keys:add    //uploads the new key, if no arguments r passed then the key generated                              //in default directroy i.e., ~/.ssh/id_rsa is uploadedgit push heroku

这应该工作。


#4楼

分享我的经验:

Git(我自己安装的)正在寻找名为“ id_rsa”的密钥。

因此,我尝试将我的密钥重命名为“ id_rsa”和“ id_rsa.pub”,并且可以正常工作。

顺便说一句,我敢肯定还有另一种方法可以做到,但是我还没有深入。


#5楼

我必须做:

$ ssh-keygen -t rsa
$ heroku keys:add

然后工作了:

$ git push heroku master

#6楼

一个命令起作用:

heroku keys:add

如果不存在,它将创建一个。


#7楼

当我的机器上安装了TortoiseGIT时,我遇到了这个问题。 更改环境变量GIT_SSH

"c:\Program Files\TortoiseGit\bin\TortoisePlink.exe"

"c:\Program Files (x86)\Git\bin\ssh.exe"

并按照本教程的ssh-keygenkeys:add


#8楼

检查您的.ssh配置中的heroku。 转到.ssh文件夹并打开配置文件

cd ~/.ssh
subl config

'subl'用于Sublime Text,但是您可以使用所需的任何编辑器。 查找“ IdentityFile”行,并确保列出了非公共密钥:

IdentityFile "/Users/ircmullaney/.ssh/my_ssh"

IdentityFile "/Users/ircmullaney/.ssh/my_ssh.pub"

对我来说就做到了。 我不确定为什么我的配置文件中有公共版本,但确实如此,并且抛出了错误:

Permissions 0644 for '/Users/ircmullaney/.ssh/my_ssh.pub' are too open.

#9楼

推送为我工作,然后突然停止。

如果heroku api出现停机时间,则在尝试推送时会出现此错误。

校验:

https://status.heroku.com/

吓得发抖之前。


#10楼

尝试所有这些想法后,我仍然遇到问题。 这是我的问题:

我的远程heroku存储库被选中。 我刷新如下:

git remote -v

然后删除错误的heroku之一:

git remote rm heroku

然后添加新的

git remote add heroku git@heroku.com:sitename.git

您可以从Heroku设置页面获取应用程序的站点名称。 祝好运!


#11楼

我遇到的问题是在Windows上,无论何时运行“ heroku keys:add”,它总是选择github密钥。 所以这是我要解决的步骤

  1. 转到“文档和设置”文件夹下的.ssh目录,并删除了git hub键
  2. 运行命令heroku keys:add

上面的命令要求我生成一个新密钥,然后是输出找不到现有的公共密钥。 您想生成一个吗? [Yn]是生成新的SSH公钥。 上载SSH公钥C:/ Documents and Settings / Admin / .ssh / id_rsa.pub ...已完成! 已弃用'heroku'宝石,并替换为Heroku Toolbelt,可从https://toolbelt.heroku.com下载并安装。

  1. 重新运行命令heroku keys:add

上面的命令不会提供以下输出:找到现有的公钥:C:/ Documents and Settings / Admin / .ssh / id_rsa.pub上传SSH公钥C:/ Documents and Settings / Admin / .ssh / id_rsa.pub.。完成

  1. 现在使用git push heroku master

对我来说,使用上述步骤解决了该问题,并能够在云上部署该应用程序。


#12楼

尝试修复“磁盘工具”(Mac OS X)中的权限。 帮助过我


#13楼

我遇到了同样的问题; 遵循以下步骤应该会有所帮助:

  1. 首先,登录:heroku登录
  2. 清除所有键:heroku键:清除
  3. 删除.ssh/ folder中本地文件夹中的所有文件(所有.pub文件和know_host
  4. 再次登录:heroku登录-您将无提示输入提示,因此请按照屏幕上的说明进行操作。

#14楼

首先,请确保隐藏文件在Mac中可见。 如果不这样做:

  • 打开终端并输入defaults write com.apple.Finder AppleShowAllFiles TRUE
  • killall Finder

下一步:

  • 转到Users/user_name/.ssh/删除所有文件。
  • ssh-keygen -t dsa打开终端类型
  • 然后heroku keys:add ~/.ssh/id_dsa.pub

注意:我在Mac OSX 10.7.2 Lion中做到了。 虽然程序在其他方面也应该相同。


#15楼

我也有这个问题。 我正在使用Mac OSX。 我修复的方法是以管理员身份登录

苏多苏

密码


#16楼

dmajkic的解决方案终于对我有所帮助:

对于Windows用户,这可能意味着:git client无法找到您的密钥。 检查c:\\ Users \\ UserName.ssh \\中的注册表项! 环境变量HOME = c:\\ Users \\ UserName \\


#17楼

遵循的顺序

$ heroku login
$ ssh-keygen -t rsa
$ heroku keys:add

当执行第二条语句时,它将要求输入,只需按Enter (回车)3次,将添加一个键。


#18楼

这对我有用。 heroku网站未添加到您的已知主机。 转到window-other- show view-git-git存储库。 从那里克隆存储库。 克隆后,删除刚刚创建的存储库,然后从文件菜单导入它。 这样做是因为克隆存储库时,它不会将其添加到资源管理器视图中。 现在,您应该拥有git信息库和资源管理器视图。


#19楼

对于所有在Windows 7上尝试了上述所有功能但仍然无法正常工作的人,这是我已经完成的工作:-从Git目录C:\\ Program Files(x86)\\ Git \\中打开GitBash.exe。 t打开命令提示符,此操作将无效)。 - 如上所述添加以下内容,但您必须删除#

Host heroku.com
Hostname heroku.com
Port 22
IdentitiesOnly yes
IdentityFile ~/.ssh/ssh-dss
TCPKeepAlive yes
User joe@workstation.local

现在运行git push heroku master ,它应该可以工作。


#20楼

听起来您的~/.ssh/authorized_keys文件未正确设置。 验证:

  • 这是正确的路径。
  • 该文件的权限为0600。
  • ~/.ssh的权限为0700。

#21楼

您必须将公钥上传到Heroku:

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

如果您没有公共密钥,Heroku会提示您自动添加一个无缝运行的密钥。 只需使用:

heroku keys:add

要清除以前的所有键,请执行以下操作:

heroku keys:clear

要显示所有现有键,请执行以下操作:

heroku keys

编辑:

以上似乎对我不起作用。 我搞砸了HOME环境变量,因此SSH在错误的目录中搜索密钥。

为确保SSH检查正确目录中的密钥,请执行以下操作:

ssh -vT git@heroku.com

这将显示以下(示例)行

OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Connecting to heroku.com [50.19.85.156] port 22.
debug1: Connection established.
debug1: identity file /c/Wrong/Directory/.ssh/identity type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_rsa type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version Twisted
debug1: no match: Twisted
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host 'heroku.com' is known and matches the RSA host key.
debug1: Found key in /c/Wrong/Directory/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /c/Wrong/Directory/.ssh/identity
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_rsa
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_dsa
debug1: No more authentication methods to try.

Permission denied (publickey).

从上面可以看到ssh在/c/Wrong/Directory/.ssh目录中查找密钥,该目录不是我们刚刚添加到heroku的公共密钥的地方(使用heroku keys:add ~/.ssh/id_rsa.pub )( 请注意,在Windows OS中~指的是Windows heroku keys:add ~/.ssh/id_rsa.pub 中的C:\\Users\\UserNameHOME路径

要查看当前主目录,请执行以下操作: echo $HOMEecho %HOME% (Windows)

要正确设置HOME目录(正确地说,我的意思是.ssh目录的父目录,以便ssh可以在正确的目录中查找密钥),请参考以下链接:

  1. SO答案关于如何永久设置Unix环境变量

  2. 因此,关于ssh在错误目录中寻找密钥的问题及其解决方案。


#22楼

这是解释如何管理ssh密钥的链接: https : //devcenter.heroku.com/articles/keys#adding-keys-to-heroku


#23楼

上面给出的答案确实有效,但是发现我需要做一些额外的步骤才能起作用。

  1. 我使用此指南删除了所有id_rsa *文件并生成了新的SSH。
  2. 然后,我破坏了heroku应用程序。 删除了〜/ .heroku / credentials文件。
  3. “ heroku create”命令(由于凭据文件已删除,因此将提示您输入电子邮件/密码。
  4. 最后键入“ heroku keys:add”,它将上传默认的〜/ .ssh / id_rsa.pub文件。
  5. 有用! 嗯.... YMMV,但我确实希望这可以对我有所帮助,因为我整天都在努力解决这个问题! 哈哈

#24楼

我遇到了同样的问题,以下步骤对我有用,

->heroku login

abc@gmail.com和密码

->cd C:\Users\yourusername\.ssh    (OR for cygwin shell ->cd ~/.ssh)

->ssh-keygen -t rsa -f id_rsa

如果询问任何密码短语,请不要使用空格,请填写密码短语,但不要忘记。

生成密钥后,您需要添加它,就像这样

$ ssh-add

和它到heroku

->heroku keys:add "id_rsa.pub"

将目录更改为工作区,然后

->git clone git@heroku.com:stark-dawn-1234.git -o heroku

使用上面设置的密码。


实际上,我还删除了以下文件,但不确定它们是否为imp,

C:\\ Users \\ yourusername.heroku \\ credientals和C:\\ Users \\ yourusername.ssh \\ known_hosts


#25楼

如果您是Windows用户,则此处的其他解决方案可能无法解决您的问题。

我使用Windows 7 64位+ Git-1.7.7.1-preview20111027,解决方案是将密钥从C:\\users\\user\\.ssh复制到C:\\Program Files (x86)\\Git\\.ssh 。 这就是这个git客户端在推送到heroku时寻找密钥的地方。

我希望这有帮助。


#26楼

在Windows 7,64位上,上述解决方案(奥努尔·图尔汗的解决方案)对我起作用,但有一些细微的变化,如下所示

C:\Users\MyName > heroku login

输入电子邮件/密码

C:\Users\MyName >ssh-keygen -t rsa -f id_rsa

这在我的c:\\ Users \\ MyName目录(不在.ssh目录中)中生成了两个文件(id_rsa和id_rsa.pub)。

heroku keys:add id_rsa.pub
git clone git@heroku.com:some-heiku-xxxx.git -o heroku

我猜添加正确的“ id_rsa.pub”文件是最重要的。使用keygen生成公钥后,只需查看创建时的时间戳验证您是否添加了正确的密钥。


#27楼

我花了三天时间自杀,尝试各种可能的组合以使它起作用—我终于尝试制作DSA密钥,它起作用了。

如果对您不起作用,请尝试使用DSA而不是RSA。

(我正在使用Ubuntu 11.10,Ruby 1.8.7,heroku 2.15.1)


#28楼

我只想补充一点,该目录不一定是C:\\ Users \\ [用户名] \\。ssh。 这是您在其中创建公钥的目录。

例如,我在Windows中的主目录已更改为C:\\ [用户名]。 您的.ssh子文件夹中的主目录是创建密钥的最佳且最可能的位置。 您可以使用以下命令在Windows中检查主目录:

    echo %HOMEPATH%

#29楼

这个问题困扰了我几天。

这可能会有所帮助。

1)找出您现在在Heroku中拥有的键。

$ heroku keys
=== 1 key for joe@example.com
ssh-dss AAAAB8NzaC...DVj3R4Ww== joe@workstation.local

2)建立一个〜/ .ssh / config文件:

$ sudo vim ~/.ssh/config

使用此信息进行编辑

Host heroku.com
Hostname heroku.com
Port 22
IdentitiesOnly yes
IdentityFile ~/.ssh/ssh-dss # location and name of your private key
TCPKeepAlive yes
User joe@workstation.local

#30楼

这是我的解决方案:

ssh-add ~/.ssh/my_heroku_key_rsa

部署heroku代码时,权限被拒绝(公钥)。 致命:远端意外挂断相关推荐

  1. 计算机与scp通讯发生故障,在两台远程计算机之间使用scp命令时权限被拒绝错误...

    我的局域网中有3台计算机.这些是 Machine1 : 192.168.1.1 (root user: user1) Machine2 : 192.168.1.2 (root user: user2) ...

  2. SSH访问Amazon EC2实例时权限被拒绝(publickey)[关闭]

    本文翻译自:Permission denied (publickey) when SSH Access to Amazon EC2 instance [closed] I want to use my ...

  3. android 启动服务权限,android – 当我尝试启动服务时权限被拒绝

    我试图从Activity访问InputMethodService,我遇到了权限问题.这适用于自定义键盘应用. 我想要实现的是将在Activity中创建的文本绑定回InputMethodService. ...

  4. 基于 Kubernetes 的微服务部署即代码

    在基于 Kubernetes 的基础设施即代码一文中,我概要地介绍了基于 Kubernetes 的 .NET Core 微服务和 CI/CD 动手实践工作坊使用的基础设施是如何使用代码描述的,以及它的 ...

  5. 微服务开发及部署_基于 Kubernetes 的微服务部署即代码

    在基于 Kubernetes 的基础设施即代码一文中,我概要地介绍了基于 Kubernetes 的 .NET Core 微服务和 CI/CD 动手实践工作坊使用的基础设施是如何使用代码描述的,以及它的 ...

  6. linux scp传输文件权限被拒绝,Linux的远程传输文件scp及出现Permission denied (publickey).lost connection问题解决方法...

    一.Linux的远程传输文件scp使用方法 1.当前Linux系统 --> 远程Linux系统 scp 当前Linux系统文件路径/文件名 远程Linux用户名@IP地址:远程Linux系统文件 ...

  7. 这可能是最精简的Android6.0运行时权限处理,百行代码的工具类,支持Rationale,附:各种权限详细处理

    0x00:前言 对于Android6.0运行时权限的处理方式网上有很多,包括注解,RxJava等等.一直没有正面提到我关心的问题–如果我不在Activity或者Fragment里面,需要运行时权限该怎 ...

  8. 如何将git服务器同步到本地文件夹,使用git在服务器上部署git仓库并实现提交代码时同步代码到生产环境...

    最近由于需要对正在运行的系统进行新功能添加,本来是可以通过github进行代码维护,但是由于这个项目涉及一些问题,目前还不能开源,所以只能是手动覆盖bug文件,生产环境上的代码反而是最新的了. 之前有 ...

  9. Android位置权限拒绝多次后,Android M中权限被拒绝时该如何处理

    M的开发者预览版2现在包含了一个运行时权限的新方法:Activity.shouldShowRequestPermissionRationale(). 它告诉你的app在实际显示权限对话框之前是否显示一 ...

最新文章

  1. php 腾讯云实时音视频,腾讯云视频 -实时音视频学习日志
  2. NumPy库入门教程:基础知识总结
  3. 一个普通摄像头就让二次元老婆“活”了过来,网友:求收费
  4. sgu 126 Boxes
  5. python server.py_python manage.py runserver报错
  6. 用javascript实现一个stack overflow的例子
  7. 如何根据原理图画封装_常用原理图封装
  8. jsonp的简单学习
  9. PyCharm设置背景颜色
  10. Maven学习总结(28)——Maven+Nexus+Myeclipse集成
  11. beetl html模板,Beetl模板引擎之自定义html标签
  12. 2022年,给物联网专业的大学生的一些建议!
  13. influxdb 插入数据_influxdb写入数据
  14. CodeForces - 1413C Perform Easily(双指针)
  15. 五年后的深圳是天堂还是地狱?
  16. 黑苹果 wifi android,黑苹果目前已可以完美驱动内置intel WiFi
  17. 使用 arxiv-sanity 实时跟进自己研究领域的Paper
  18. 使用keil软件创建一个STM32工程
  19. 如何磁盘格式化?分享格式化U盘的3个方法
  20. 设置IE主页的几种方法

热门文章

  1. 一个关于如何创建类似于QQ客户端聊天窗口的模拟小项目
  2. SDOI2015 排序
  3. SharePoint 2010开发实例精选——通过客户端对象模型删除页面上的Web部件
  4. FlashDevelop 3.0.0 Beta2 released
  5. 内网DNS地址自己定
  6. 牛客多校第五场 A digits 2 签到
  7. 二、CSS基础(1)
  8. C#:将图片文件上传到数据库两种方法。
  9. Chrome浏览器快速获取静态控件的XPATH
  10. startService与bindService