我觉得这将归结为对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。没有。这对我来说很奇怪,因为我在第一轮比赛中从未做过任何这样的事情。有什么想法吗?
答案 0 :(得分:0)
我也遇到了同样的问题。
然后将git从我的本地计算机中推出(我在开始时将ssh键添加到dokku中)所以我怀疑问题是你改变了键。
更新:我发现另一篇文章描述:
不要使用ssh-copy-id:这将为用户提供对服务器的完全访问权限,并且他们将无法git push,因为它使用git用户
https://medium.com/code-adventures/438bce155dcb
所以也许这就是问题所在?拥有服务器和dokku的公钥会产生推送代码的问题吗?