1

我正在关注 railcast 教程,尝试使用 Rubber 测试部署。设法从重复规则错误、创建实例错误等中幸存下来,但我最终被无限连接循环阻止:

 ** Instance running, fetching hostname/ip data
Trying to enable root login
  * 2014-01-16 15:36:41 executing `rubber:_ensure_key_file_present'
  * 2014-01-16 15:36:41 executing `rubber:_allow_root_ssh'
  * executing "sudo -p 'sudo password: '  bash -l -c 'mkdir -p /root/.ssh && cp /home/ubuntu/.ssh/authorized_keys /root/.ssh/'"
    servers: ["---.---.---.---"]
 ** Can't connect as user ubuntu to ---.---.---.---, assuming root allowed
  * 2014-01-16 15:36:44 executing `rubber:_direct_connection_---.---.---.---_673'
  * executing "echo"
    servers: ["---.---.---.---"]
 ** Failed to connect to ---.---.---.---, retrying
  * 2014-01-16 15:36:48 executing `rubber:_direct_connection_---.---.---.---_673'
  * executing "echo"
    servers: ["---.---.---.---"]
 ** Failed to connect to ---.---.---.---, retrying
  * 2014-01-16 15:36:53 executing `rubber:_direct_connection_---.---.---.---_673'
  * executing "echo"
    servers: ["---.---.---.---"]
  • IP被屏蔽了...

我尝试了很多不同的东西:

  • 使用 ssh 和密钥手动连接到新实例
  • 仔细检查 Rubber.yml 以查看密钥路径是否正确
  • 在 -v 中运行 cap 命令
  • 检查我定义的实例是否与默认的ami类型相同

它们看起来都很好,所以我认为用于橡胶的命令必须有一些东西来连接和运行“sudo -p 'sudo 密码:' bash -l -c 'mkdir -p /root/.ssh && cp /home/ ubuntu/.ssh/authorized_keys /root/.ssh/'"。但是,我无法看到 Rubber 与我的实例交谈的内容。我试图进入源代码,但它也让我无处可去。

我已经做了很多谷歌搜索,这似乎是一个很常见的错误,但没有真正的解决方案。谁能建议可能是什么问题?谢谢你。

更新:

更多的想法:它正在写作** Can't connect as user ubuntu to 54.200.63.202, assuming root allowed。那么 Rubber 是否尝试过直接 ssh 到 root 用户?如果是这样,那可以解释原因。有没有办法改变这个?

4

1 回答 1

0

我已经找出原因了。这是我的键名中的拼写错误。我通过逐步在控制台中缓慢地重新生成 key_file 字符串发现了这一点。调试这个 key_path 问题很有帮助。希望它可以帮助某人!

于 2014-01-23T00:02:07.177 回答