2011-02-10 28 views
6

Tôi đang ở trong một tình huống mà tôi cần truyền một số văn bản tới lời nhắc được tạo bởi API (có vẻ như API là một hành vi khá kỳ lạ, đây là lần đầu tiên tôi gặp phải điều này), như dưới đây:Làm thế nào để đối phó với API tương tác trong python

kvm_cli = libvirt.open("qemu+ssh://[email protected]/system") 

sau đó một dấu nhắc xuất hiện yêu cầu mật khẩu ssh (password for 10.0.10.8 is:), tôi phải tự gõ nó ở đó để tiến lên và mang lại đối tượng kvm_cli tôi cần.

Tôi đã cố gắng sử dụng mô-đun pexpect để giải quyết vấn đề này, tuy nhiên, đó là dòng lệnh OS thay vì API.

Cũng có thể giải quyết vấn đề này bằng cách sử dụng tệp chứng nhận ssh nhưng đó không phải là cách tiếp cận xác thực thuận lợi trong kịch bản của chúng tôi.

Vì trình bao bọc của chúng tôi cho phương pháp 'mở' không tương tác, chúng tôi không thể yêu cầu người dùng nhập mật khẩu, các bạn có nghĩ gì về cách tôi có thể giải quyết nó không?

+0

Tôi đoán tệp chứng nhận ssh giống với thông tin đăng nhập 'dựa trên khóa' Andrea đã đề xuất. tại sao bạn nghĩ rằng chứng chỉ ssh không phải là một cách tiếp cận khả thi cho vấn đề này, đó là những gì tôi sẽ sử dụng trong tình huống này. –

Trả lời

4

Tôi không phải là người dùng libvirt, nhưng tôi tin rằng vấn đề không có trong thư viện, nhưng trong phương thức kết nối. Bạn dường như đang kết nối thông qua ssh, vì vậy bạn cần phải xác thực chính mình.

Tôi đã đọc libvirt page on ArchWiki, và tôi nghĩ rằng bạn có thể thử:

Các vấn đề liên quan