在部署到Digital Ocean时,Dokku推动导致管道损坏

时间:2014-01-08 01:55:26

标签: git ssh ssh-keys docker digital-ocean

我觉得这将归结为对SSH密钥的一个基本误解,但我似乎无法确定为什么我不再git push dokku master在Digital Ocean上设置我的Dokku + Docker。当我最初设置我的Droplet时,我跟着this tutorial发球并且我能够部署到Dokku就好了,直到我在容器中戳了一下并且不知何故使Docker和/或Dokku瘫痪(仍然试图理解那些...)。我怀疑这是不可挽回的,但我变得不耐烦,所以我只是擦掉了整个Droplet并从头开始教程。

然而,这一次,在完全按照相同的方式设置所有内容后,我可以通过SSH直接进入“root@mydomain.com”,但我无法推送到Dokku。相反,在等待永恒之后,我得到:

failed: Broken pipe 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights and the repository exists.

检查/var/log/auth.log我发现会话确实已经建立:

Jan  8 00:56:39 localhost sshd[19559]: Accepted publickey for dokku from 79.113.124.516 port 56067 ssh2
Jan  8 00:56:39 localhost sshd[19559]: pam_unix(sshd:session): session opened for user dokku by (uid=0)

我试图做出this post的正面或反面但无济于事。我觉得它必须与我擦除整个VM Droplet并替换它(但它仍然具有相同的IP)这一事实有关。我从~/.ssh/known_hosts删除了连接,并在我第一次重新连接到新实例时重新添加了它(这很正常)。我也跟着README steps来配置Dokku。没有。这对我来说很奇怪,因为我在第一轮比赛中从未做过任何这样的事情。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题。

遵循此处的教程:https://www.digitalocean.com/community/articles/how-to-use-the-dokku-one-click-digitalocean-image-to-run-a-ruby-on-rails-app

然后将git从我的本地计算机中推出(我在开始时将ssh键添加到dokku中)所以我怀疑问题是你改变了键。

更新:我发现另一篇文章描述:

  

不要使用ssh-copy-id:这将为用户提供对服务器的完全访问权限,并且他们将无法git push,因为它使用git用户

https://medium.com/code-adventures/438bce155dcb

所以也许这就是问题所在?拥有服务器和dokku的公钥会产生推送代码的问题吗?