не можете получить доступ к экземпляру ec2, который создан ruby ​​aws-sdk lib с использованием ssh? - PullRequest
1 голос
/ 26 марта 2012

Я использую ruby ​​aws-sdk для запуска экземпляра в amazone EC2, но у меня проблема с доступом к созданным экземплярам с использованием ssh, вот что я сделал

ec2 = AWS::EC2.new( :access_key_id => ACCESS_KEY_ID, :secret_access_key => SECRET_ACCESS_KEY, :ec2_endpoint =>  "ec2.sa-east-1.amazonaws.com")
securitygrp = ec2.security_groups.create('mysecgrp')
securitygrp.authorize_ingress(:tcp, 22)
ec2.instances.create(:image_id => "ami-082df215")

, но я не могу получить доступ к экземпляруиспользуя ssh root @ ip_address, я получил connection timed out, что-то я пропустил, пожалуйста, кто-нибудь, помогите мне?

1 Ответ

1 голос
/ 27 марта 2012

Когда вы запускаете экземпляр, вы можете дополнительно указать группу безопасности.Если вы опустите параметры: security_groups, то по умолчанию будет установлена ​​группа безопасности «по умолчанию» (вы не сможете изменить группу безопасности экземпляра после запуска).В вашем примере вы должны указать группу безопасности для той, которую вы только что создали.

Еще одна вещь, которую следует учитывать, это указать пару ключей.По умолчанию он равен единице, если вы не установили его, но вам, вероятно, понадобится это для входа в публичный ami.

Вот пример, который я только что выполнил.AMI, который я использую, - это amazon 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 ec2-user@1.2.3.4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...