Próbuję połączyć się z instancją Amazon EC2 przez SSH, używając boto
. Wiem, że połączenie ssh może zostać ustanowione po pewnym czasie od utworzenia instancji. Tak więc moje pytania są następujące:Jak sprawdzić, czy połączenie SSH zostało ustanowione z instancją AWS
- Czy mogę w jakiś sposób sprawdzić, czy SSH jest na instancji? (jeśli tak, to w jaki sposób?)
- Albo jak mogę sprawdzić wyjście
boto.manage.cmdshell.sshclient_from_instance()
? Mam na myśli na przykład, jeśli wyjście wypiszeCould not establish SSH connection
, niż spróbuj ponownie.
To, co starałem tak daleko, ale nie ma szczęścia:
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
I oczywiście wszystko działa poprawnie, ponieważ mogę uruchomić tego samego kodu po pewnym czasie i uzyskać połączenie, a będą mogli korzystać cmd.shell()
Dziękuję, to bardzo mądry. – Vor