啓動實例時,可以選擇提供安全組。如果您省略:security_groups選項,則它將默認爲「默認」安全組(您不能在啓動後更改實例的安全組)。在您的示例中,您應該將安全組指定爲您剛創建的安全組。
要考慮的另一件事是指定密鑰對。如果你沒有設置它,它會默認爲一個,但你可能需要這個來登錄到公共艾滋病。
這是我剛跑過的一個例子。我使用的AMI是亞馬遜linux ami。
AWS.config(:access_key_id => '...', :secret_access_key => '...')
ec2 = AWS::EC2.new(:ec2_endpoint => "ec2.sa-east-1.amazonaws.com")
# create a security group and authorize ssh
sg = ec2.security_groups.create('my-security-group')
sg.authorize_ingress(:tcp, 22)
# create a key pair and write it to disk
key_pair = ec2.key_pairs.create('my-key-pair')
File.open("#{ENV['HOME']}/.ssh/my-key-pair.pk", 'w') do |file|
file.write key_pair.private_key
end
require 'fileutils'
FileUtils.chmod(0600, "#{ENV['HOME']}/.ssh/my-key-pair.pk")
instance = ec2.instances.create(
:image_id => 'ami-3c3be421',
:key_name => key_pair.name,
:security_groups => [sg])
sleep 1 while instance.status == :pending
puts instance.ip_address
#=> '1.2.3.4'
現在你應該可以使用SSH連接實例(有時指的是從實例狀態是〜30秒延遲:可用,並且它響應SSH)。
# some amis require you to login as root, others as ec2-user
$ ssh -i ~/.ssh/my-key-pair.pk [email protected]
問題是您在「默認」安全組中創建/運行您的新實例,而不是使用ssh的入口規則創建新實例。 – 2012-03-30 02:12:59