尝试使用https://github.com/rubber/rubber开始使用Rails Amazon EC2部署,在尝试使用cap rubber:create_staging
创建临时服务器之后,我一直在这里结束:
** [out :: production.foo.com] curl: (7) couldn't connect to host command finished in 2022ms
failed: "/bin/bash -l -c 'sudo -p '\\''sudo password: '\\'' bash -l /tmp/create_inputs'" on production.foo.com
我一直坚持使用Rubber的quickstart guide,但无法解决这个问题。我正在使用rvm,如果这对任何人都有影响。
有什么想法吗?
答案 0 :(得分:0)
您似乎正在尝试连接production.foo.com
。更改您的配置以连接到正确的远程服务器,或者如果您在EC2实例中本地运行,则可以将其设为localhost
。
确保在~/.ssh/authorized_keys
中为您尝试部署的用户设置公共ssh密钥。这是为了允许capistrano / rubber进行无密码ssh身份验证。
答案 1 :(得分:0)
在这里复兴一篇旧帖子但是我刚刚遇到这个问题的另一个可能原因是因为这可能会帮助其他人。
我必须为ec2实例重新创建并下载新的密钥对。当我将其移至~/.ec2/gsg-keypair
时,我忘了更改权限。
当SSH直接进入实例时,您会收到完整警告,这样可以轻松调试:
未受保护的私人密钥文件!权限0644 for' xxxxx.pem'是 太开放了。建议您的私钥文件不是 其他人可以访问。此私钥将被忽略。坏 permissions:ignore key:xxxxx.pem Permission denied(publickey)。
但是在运行橡胶任务时,您只会得到一个通用的CURL错误。如果是这种情况,也只需更新这样的权限:
chmod 600 ~/.ec2/gsg-keypair