Tôi đang cố gắng kết nối với cá thể Amazon EC2 qua SSH bằng cách sử dụng boto
. Tôi biết rằng kết nối ssh có thể được thiết lập sau một thời gian sau khi cá thể được tạo ra. Vì vậy, câu hỏi của tôi là:Cách kiểm tra xem kết nối SSH đã được thiết lập với ví dụ AWS
- Tôi có thể kiểm tra xem SSH có đang hoạt động không? (nếu có, như thế nào?)
- Hoặc làm cách nào để kiểm tra kết quả của
boto.manage.cmdshell.sshclient_from_instance()
? Tôi có nghĩa là ví dụ nếu đầu ra in raCould not establish SSH connection
, hơn là thử lại.
Đó là những gì tôi đã cố gắng cho đến nay, nhưng không có may mắn:
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
Và tất nhiên mọi thứ đều hoạt động bình thường, bởi vì tôi có thể khởi chạy cùng mã sau một thời gian và sẽ có được một kết nối, và sẽ có thể sử dụng cmd.shell()
Cảm ơn bạn, nó rất thông minh. – Vor