我試圖通過SSH連接到Amazon EC2實例,使用boto
。我知道ssh連接可以在實例創建一段時間後建立。所以我的問題是:如何檢查是否與AWS實例建立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()
謝謝你,這是很聰明的。 – Vor 2013-07-15 14:32:43