Ruby on rails 启动后无法ssh到实例。在轨道上使用雾

Ruby on rails 启动后无法ssh到实例。在轨道上使用雾,ruby-on-rails,fog,Ruby On Rails,Fog,在使用Fog引导EC2实例之后,我很难立即连接到它。在引导之后,我等待实例准备就绪,然后再等待5秒。但是我仍然无法通过ssh连接。连接在一段时间后可用,但在机器“就绪”后需要一段时间 instance.wait_for { ready? } instance.wait_for { !public_ip_address.nil?} sleep(5) 关于如何等待计算机准备好接受ssh连接的建议?假设您使用的是EC2,请确保服务器所在的安全组允许在端口22上使用ssh。如果您不在EC2上,则可能存

在使用Fog引导EC2实例之后,我很难立即连接到它。在引导之后,我等待实例准备就绪,然后再等待5秒。但是我仍然无法通过ssh连接。连接在一段时间后可用,但在机器“就绪”后需要一段时间

instance.wait_for { ready? }
instance.wait_for { !public_ip_address.nil?}
sleep(5)

关于如何等待计算机准备好接受ssh连接的建议?

假设您使用的是EC2,请确保服务器所在的安全组允许在端口22上使用ssh。如果您不在EC2上,则可能存在类似的防火墙问题

编辑:这里有一些我以前使用过的代码,从来没有遇到过任何问题,但这是一个非ec2云提供商的代码

def wait_for resource, msgOnStart, msgOnReady='Done'
  print msgOnStart
  resource.wait_for do
    print '.'
    if resource.ready?
      print "#{msgOnReady}\n"
      true
    end
  end
end

@server = compute.servers.create(#blahblahblah)
wait_for @server, 'Provisioning server'

过一会儿我就可以ssh了。只需要一点时间。问题更多的是,我如何确定何时可以连接。您使用的是什么云提供商?我在回答中添加了一些代码,这些代码适用于非ec2提供商