虽然我已遵循在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
答案 0 :(得分:4)
您可能遇到了Cygwin群组权限中的错误。 Vineet Gupta gives a workaround in his blog.问题来自ssh
围绕密钥所期望的非常严格的权限,解决方案是正确设置ssh密钥的权限(仅限所有者为600,rw
) 。 Cygwin似乎需要手动添加该组。
更新安装dotCloud CLI的步骤,包括设置权限,导致:
启用以下包:
安装完成后,桌面上应该有一个Cygwin图标。启动它:你将得到一个命令行shell。
下载easy_install
wget http://peak.telecommunity.com/dist/ez_setup.py
安装easy_install
python ez_setup.py
您现在有easy_install
;我们用它来安装pip
:
easy_install pip
现在安装dotcloud
(CLI)
pip install dotcloud
使用您的凭据设置CLI。这也将下载ssh密钥。
dotcloud setup
新步骤更新dotCloud密钥的权限:
chgrp Users ~/.dotcloud_cli/dotcloud.key
chmod 600 ~/.dotcloud_cli/dotcloud.key
现在你应该可以dotcloud push
如果您有multiple dotCloud accounts,那么您需要为每个帐户重复此过程,因为每个帐户都有自己的密钥。另请注意,您不必手动设置这些权限,但似乎组所有权有时是Cygwin中的错误默认值。 Linux和OSX似乎没有显示此问题,但所有操作系统的权限必须为600,因此值得检查。