我使用java自動化ssh會話,使用此代碼我可以登錄並獲得屏幕上的輸出,但在此之後,我們進入應用程序後運行ssh會話,它不需要用戶名和密碼,因爲它需要像TAB,ENTER和功能鍵等鍵盤交互,所以有辦法發送鍵盤事件代替命令,以便自動化成功嗎?在java中使用jsch庫的ssh會話自動化
public class jschputty {
public static void main(String args[])
{
String host="x.x.x.x";
String user="username";
String password="password";
String command1="ls -ltr\t";
try{
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
JSch jsch = new JSch();
Session session=jsch.getSession(user, host, 22);
session.setPassword(password);
session.setConfig(config);
session.connect();
System.out.println("Connected");
ChannelExec channel=(ChannelExec) session.openChannel("exec");
BufferedReader in=new BufferedReader(new InputStreamReader(channel.getInputStream()));
channel.setCommand(command);
channel.connect();
String msg=null;
while((msg=in.readLine())!=null){
System.out.println(msg);
}
channel.disconnect();
session.disconnect();
System.out.println("DONE");
}catch(Exception e){
e.printStackTrace();
}
}
}
你在做什麼是SFTP連接到SFTP服務器。就像您可以使用名爲「putty」的客戶端應用程序一樣。你不用這個代碼以任何方式與膩子進行交互。 – Gimby 2014-09-26 12:45:38
@Gimby - 技術上說,ssh,不是sftp,但是你是正確的,膩子是不會涉及的。 – jtahlborn 2014-09-26 12:57:50