を使用して SSH 経由で Amazon EC2 インスタンスに接続しようとしています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()