dotcloud push on cygwin失败,出现“rsync error:unexplained error(code 255)”(与git和hg类似)

时间:2013-06-06 18:08:35

标签: windows-8 ssh cygwin dotcloud

虽然我已遵循在Cygwin下使用dotCloud CLI的常规步骤,但dotcloud push在所有情况下均失败:--rsync, --hg, and --git

我在Windows 8和Cygwin上。

如何成功推送?

示例输出:

me@host /cygdrive/d/project 
$ dotcloud push --rsync 
==> Pushing code with rsync from "./" to application myapp 
rsync: connection unexpectedly closed (0 bytes received so far) [sender] 
rsync error: unexplained error (code 255) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [sender=3.0.9]

me@host /cygdrive/d/project 
$ dotcloud push --git 
Permission denied (publickey,password).r from "./" to application myapp 
fatal: The remote end hung up unexpectedly

me@host /cygdrive/d/project 
$ dotcloud push --hg 
==> Pushing code with mercurial from "./" to application myapp 
abort: no suitable response from remote hg! 
Error: Mercurial returned a fatal error

1 个答案:

答案 0 :(得分:4)

您可能遇到了Cygwin群组权限中的错误。 Vineet Gupta gives a workaround in his blog.问题来自ssh围绕密钥所期望的非常严格的权限,解决方案是正确设置ssh密钥的权限(仅限所有者为600,rw) 。 Cygwin似乎需要手动添加该组。

更新安装dotCloud CLI的步骤,包括设置权限,导致:

  1. 启动Cygwin Setup
  2. 选择默认选项,直至到达包选择对话框。
  3. 启用以下包:

    • 净/ openssh的
    • 净/ rsync的
    • devel的/ GIT中
    • devel的/水银
    • python / python(确保它至少是2.6!)
    • 网/ wget的
  4. 安装完成后,桌面上应该有一个Cygwin图标。启动它:你将得到一个命令行shell。

  5. 下载easy_install

    wget http://peak.telecommunity.com/dist/ez_setup.py
    
  6. 安装easy_install

    python ez_setup.py
    
  7. 您现在有easy_install;我们用它来安装pip

    easy_install pip
    
  8. 现在安装dotcloud(CLI)

    pip install dotcloud
    
  9. 使用您的凭据设置CLI。这也将下载ssh密钥。

    dotcloud setup
    
  10. 新步骤更新dotCloud密钥的权限:

    chgrp Users ~/.dotcloud_cli/dotcloud.key
    chmod 600 ~/.dotcloud_cli/dotcloud.key
    
  11. 现在你应该可以dotcloud push 如果您有multiple dotCloud accounts,那么您需要为每个帐户重复此过程,因为每个帐户都有自己的密钥。另请注意,您不必手动设置这些权限,但似乎组所有权有时是Cygwin中的错误默认值。 Linux和OSX似乎没有显示此问题,但所有操作系统的权限必须为600,因此值得检查。