簡體   English   中英

如何通過SSH與Jsch運行需要密碼的命令

[英]How to run a command requiring a password through SSH with Jsch

我正在嘗試使用JSch在目標主機上運行命令,我希望能夠指示密碼,例如:“sudo echo hello”然后輸入當前用戶的密碼。

我不明白如何正確地與提示交互。 下面的代碼顯示了我嘗試提供密碼的兩種方式,它們都會失敗並顯示消息:

sudo:沒有tty存在且沒有指定askpass程序

我正在使用這個:

JSch jsch=new JSch();
String host="192.168.0.17";
String user="xxx";
String passwd="xxx";

Session session=jsch.getSession(user, host, 22);
session.setPassword(passwd);
session.setConfig("StrictHostKeyChecking", "no"); 
session.connect();  

ChannelExec channel=(ChannelExec)session.openChannel("exec");
channel.setCommand("sudo echo hello");
channel.setErrStream(System.err);
channel.connect();


int id = 1;
// must write on output stream?
if(id==0){
channel.getOutputStream().write(passwd.getBytes());
}
// must read on input stream?
else if(id==1){
channel.getInputStream().read(passwd.getBytes());
}

channel.disconnect();

謝謝你的建議!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM