我正在尝试使用 SSH 通过 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()