gpt4 book ai didi

java - 如何使用 Jsch 通过 SSH 运行需要密码的命令

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:12:47 25 4
gpt4 key购买 nike

我正在尝试使用 JSch 在目标主机上运行命令,我希望能够指示密码,例如:“sudo echo hello”,然后输入当前用户的密码。

我不明白如何正确地与提示进行交互。下面的代码显示了我尝试提供密码的两种方式,它们都失败并显示消息:

sudo: no tty present and no askpass program specified

我正在处理这个:

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();

感谢您的建议!

最佳答案

关于java - 如何使用 Jsch 通过 SSH 运行需要密码的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11580021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com