Java 是否可以使用jsch在jsp上打开SSH控制台?
我想看看我的研究结果 “sudo sngrep”命令在my.jsp网页上的结果 (我知道在putty上可以,但我想知道是否可以打开会话并在web上查看日志) 我已经搜索并找到了名为“jsch”的API,它看起来像 通过添加这个库,我可以通过 java代码。所以我查阅了一些有用的博客和图书馆描述, 我发现了一些类似的代码,但人们通常使用它访问ssh服务器并下载/复制文件Java 是否可以使用jsch在jsp上打开SSH控制台?,java,ssh,jsch,Java,Ssh,Jsch,我想看看我的研究结果 “sudo sngrep”命令在my.jsp网页上的结果 (我知道在putty上可以,但我想知道是否可以打开会话并在web上查看日志) 我已经搜索并找到了名为“jsch”的API,它看起来像 通过添加这个库,我可以通过 java代码。所以我查阅了一些有用的博客和图书馆描述, 我发现了一些类似的代码,但人们通常使用它访问ssh服务器并下载/复制文件 public JSchUtil(){} 公共JSchUtil(字符串用户名、字符串主机名){ this.username=用户
public JSchUtil(){}
公共JSchUtil(字符串用户名、字符串主机名){
this.username=用户名;this.hostname=主机名;
}
public void setPortForwardingL(int-port,String-host,int-hostport){}
私有会话getSession()抛出JSCHEException{
JSch JSch=新的JSch();
如果(标识!=null){
jsch.附加性(标识);
//setKnownHosts(新的ByteArrayInputStream(hostname.getBytes());
}
Session Session=jsch.getSession(用户名、主机名、22);
session.setConfig(“StrictHostKeyChecking”、“no”);
if(密码!=null)
session.setPassword(密码);
返回会议;
}
公共字符串执行器(字符串命令){
返回exec(新字符串[]{command}).get(0);
}
公共列表执行器(列表命令){
返回exec(commands.toArray(新字符串[]{}));}
但是这段代码或任何其他显示他们正在使用jsch的代码看起来像
您必须输入主机名、密码和服务器,它将
在java控制台上自动运行命令并返回文件或命令结果
我想要的是在jsp页面上查看我的日志。是否可能或不可能打开一个会话并查看jsp网页本身上的日志?如果我的英语很难理解,我很抱歉,但我正在努力学习
这种结果在我的网页上。我在想,如果我以字符串数组的形式获得命令‘sudosngrep’的结果,并使用websocket将其显示在jsp页面上,这可能吗?但我不知道这是否可能。是否可以以GUI(???)的方式打开ssh终端并在jsp页面上查看它?是的,可以从servlet使用
JSCH
-查看这些示例@ScaryWombat它是“ViaHTTP.java”吗?正如描述所述,它用于“通过HTTP代理的ssh会话”-与您的问题无关。
public JSchUtil(){ }
public JSchUtil(String username,String hostname){
this.username = username; this.hostname = hostname;
}
public void setPortForwardingL(int port,String host,int hostport){ }
private Session getSession() throws JSchException{
JSch jsch=new JSch();
if (identity!=null) {
jsch.addIdentity(identity);
//jsch.setKnownHosts(new ByteArrayInputStream(hostname.getBytes()));
}
Session session=jsch.getSession(username, hostname, 22);
session.setConfig("StrictHostKeyChecking", "no");
if (password!=null)
session.setPassword(password);
return session;
}
public String exec(String command){
return exec(new String[] {command}).get(0);
}
public List<String> exec(List<String> commands){
return exec(commands.toArray(new String[]{})); }