Я пытаюсь подключиться к экземпляру Amazon EC2 через SSH, используя boto
. Я знаю, что ssh-соединение может быть установлено через некоторое время после создания экземпляра. Итак, мои вопросы:
- Могу ли я как-то проверить, работает ли SSH на экземпляре? (если да, то как?)
- Или как я могу проверить вывод
boto.manage.cmdshell.sshclient_from_instance()
? Я имею в виду, например, если на выходе выводитсяCould not establish SSH connection
, попробуйте еще раз.
Это то, что я пробовал до сих пор, но не повезло:
if instance.state == 'running':
retry = True
while retry:
try:
print 'Connecting to ssh'
key_path = os.path.join(os.path.expanduser('~/.ssh'), 'secret_key.pem')
cmd = boto.manage.cmdshell.sshclient_from_instance(instance,
key_path,
user_name='ec2-user')
print instance.update()
if cmd:
retry = False
except:
print 'Going to sleep'
time.sleep(10)
SSH Connection refused, will retry in 5 seconds
SSH Connection refused, will retry in 5 seconds
SSH Connection refused, will retry in 5 seconds
SSH Connection refused, will retry in 5 seconds
SSH Connection refused, will retry in 5 seconds
Could not establish SSH connection
И конечно же все работает исправно, потому что я могу запустить этот же код через какое-то время и получить соединение, и смогу использовать cmd.shell()