Discussion:
[JSch-users] Not able to use JSCH jar our application.
rahul katoch
2016-12-02 05:55:56 UTC
Permalink
Hi,

I have a linux machine which I need to connect and send list of commands
using jsch java jar.

Following are the operations need to perform in linux server:
1. Connect linux server using ssh.
2. Execute login command and provide user name and password in linux shell
3. Show details of user.

Below are the commands which I need to automate using SSH connection.

[local_hots] mysh>login useradmin
Please enter user name: User1
******** ("123456" hint)
Authentication successful.

useradmin login successful.

Command Result : 0 (Success)
[local_host] mysh:> show user

I have connected linux server and send login command successfully through
java code but not able to enter user name and password.

Below is code which I am using

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.Properties;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.ChannelShell;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;



public class JSchExampleSSHConnection {

/**
* JSch Example Tutorial
* Java SSH Connection Program
* @return
*/
public static void main(String[] args) throws JSchException {
String host="192.168.1.10";
String user="admin";
String password="***@123";



JSch shell = new JSch();
// get a new session

Session session = null;

String privateKey = "C:\\Users\\rahul\\.ssh\\id_rsa";

try {
shell.addIdentity(privateKey);
} catch (JSchException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

try {
session = shell.getSession(user, host, 22);

System.out.println(session);
//Session session = shell.getSession(userName, hostName, port);
session.setPassword(password);
Properties config = new Properties();
config.put("StrictHostKeyChecking", ""
+ "");
// java.util.Properties config=new java.util.Properties();

session.setConfig(config);

session.connect();

Channel channel = session.openChannel("shell");

OutputStream ops = channel.getOutputStream();
PrintStream ps = new PrintStream(ops, true);

channel.connect();
//give commands to be executed inside println.and can have
any no of commands sent.



ps.println("login useradmin"");
ps.println("User1");
ps.println("password");


ps.close();




InputStream in=channel.getInputStream();



byte[] bt=new byte[1024];


while(true)
{
while(in.available()>0)
{
int i=in.read(bt, 0, 1024);
if(i<0)
break;
strCmdOutput = new String(bt, 0, i);
System.out.println(strCmdOutput);

}
if(channel.isClosed())
{
break;
}

Thread.sleep(10000);
channel.disconnect();

session.disconnect();



}


}catch (JSchException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}

}


Thanks & Regards
Rahul Katoch

Loading...