Scenerio: Tôi muốn chạy các lệnh trên các máy từ xa từ một chương trình Java trên ssh (Tôi đang sử dụng OpenSSH trên máy phát triển của mình). Tôi cũng muốn tạo kết nối ssh bằng cách truyền mật khẩu thay vì thiết lập các khóa như tôi mong đợi.
Vấn đề: Khi cố gắng thực hiện 'mong đợi' như đăng nhập mật khẩu, Quy trình được tạo bằng ProcessBuilder dường như không thấy lời nhắc mật khẩu. Khi chạy các lệnh không phải ssh thông thường (ví dụ: 'ls'), tôi có thể nhận các luồng và tương tác với chúng một cách tốt. Tôi kết hợp tiêu chuẩn lỗi và tiêu chuẩn ra thành một dòng với redirectErrorStream(true);
vì vậy tôi không thiếu nó trong lỗi tiêu chuẩn ... Khi tôi chạy ssh với tùy chọn '-v', tôi thấy tất cả các đăng nhập trong dòng nhưng tôi không xem lời nhắc. Đây là lần đầu tiên tôi cố gắng sử dụng ProcessBuilder cho một cái gì đó như thế này. Tôi biết sẽ dễ dàng hơn khi sử dụng Python, Perl hoặc ol tốt nhưng ông chủ của tôi muốn sử dụng những gì chúng tôi đang cố gắng lấy lại (các tệp nhật ký từ xa và các tập lệnh đang chạy) trong một chương trình Java hiện có để tôi bị mắc kẹt.Chạy các lệnh trên ssh với Java
Cảm ơn bạn đã trợ giúp!
+2 cho phương án thay thế, -1 cho không đi đến đó trước (gọi nó là "luân phiên". Net vẫn là +1 :) –
Tôi khuyên bạn nên dùng paramiko cho java, khéo léo gọi là jaramiko - http://www.lag.net/jaramiko/. ban đầu trong Python, đã được chuyển sang Java. sẽ làm cho nó dễ dàng hơn để sử dụng phiên bản python khi ông chủ cho phép :) – popcnt