package util;
import java.io.ByteArrayInputStream;
import java.io.PrintStream;
import java.util.List;
import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.sshd.ClientChannel;
import org.apache.sshd.ClientSession;
import org.apache.sshd.SshClient;
import org.apache.sshd.client.channel.ChannelShell;
import org.apache.sshd.common.util.NoCloseInputStream;
import org.apache.sshd.common.util.NoCloseOutputStream;
public class SshClient3 {
public static void main(String[] args) throws Exception {
int port = 22;
String host = "192.168.2.4";
String login = System.getProperty("user.name");
boolean agentForward = false;
List<String> command = null;
SshClient client = SshClient.setUpDefaultClient();
String str= "cat /usr/local/tomcat/webapps/studyApp/WEB-INF/db.properties;\r exit 0;\n";
ByteArrayInputStream in ;
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
PrintStream out = new PrintStream( byteOut );
client.start();
try {
boolean hasKeys = false;
ClientSession session = client.connect(host, port).await().getSession();
int ret = ClientSession.WAIT_AUTH;
while ((ret & ClientSession.WAIT_AUTH) != 0) {
if (hasKeys) {
session.authAgent(login);
ret = session.waitFor(ClientSession.WAIT_AUTH | ClientSession.CLOSED | ClientSession.AUTHED, 0);
} else {
String password ="loginpassword";
session.authPassword(login, password);
ret = session.waitFor(ClientSession.WAIT_AUTH | ClientSession.CLOSED | ClientSession.AUTHED, 0);
}
}
if ((ret & ClientSession.CLOSED) != 0) {
System.err.println("error");
System.exit(-1);
}
ClientChannel channel = null;
if (command == null) {
channel = session.createChannel(ClientChannel.CHANNEL_SHELL);
((ChannelShell) channel).setAgentForwarding(agentForward);
in= new ByteArrayInputStream( str.getBytes());
channel.setIn(new NoCloseInputStream( in ) );
}
channel.setOut(new NoCloseOutputStream( out));
channel.setErr(new NoCloseOutputStream(System.err));
channel.open().await();
channel.waitFor(ClientChannel.CLOSED, 0);
session.close(false);
} finally {
System.out.println( new String( byteOut.toByteArray()) );
client.stop();
}
}
import java.io.ByteArrayInputStream;
import java.io.PrintStream;
import java.util.List;
import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.sshd.ClientChannel;
import org.apache.sshd.ClientSession;
import org.apache.sshd.SshClient;
import org.apache.sshd.client.channel.ChannelShell;
import org.apache.sshd.common.util.NoCloseInputStream;
import org.apache.sshd.common.util.NoCloseOutputStream;
public class SshClient3 {
public static void main(String[] args) throws Exception {
int port = 22;
String host = "192.168.2.4";
String login = System.getProperty("user.name");
boolean agentForward = false;
List<String> command = null;
SshClient client = SshClient.setUpDefaultClient();
String str= "cat /usr/local/tomcat/webapps/studyApp/WEB-INF/db.properties;\r exit 0;\n";
ByteArrayInputStream in ;
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
PrintStream out = new PrintStream( byteOut );
client.start();
try {
boolean hasKeys = false;
ClientSession session = client.connect(host, port).await().getSession();
int ret = ClientSession.WAIT_AUTH;
while ((ret & ClientSession.WAIT_AUTH) != 0) {
if (hasKeys) {
session.authAgent(login);
ret = session.waitFor(ClientSession.WAIT_AUTH | ClientSession.CLOSED | ClientSession.AUTHED, 0);
} else {
String password ="loginpassword";
session.authPassword(login, password);
ret = session.waitFor(ClientSession.WAIT_AUTH | ClientSession.CLOSED | ClientSession.AUTHED, 0);
}
}
if ((ret & ClientSession.CLOSED) != 0) {
System.err.println("error");
System.exit(-1);
}
ClientChannel channel = null;
if (command == null) {
channel = session.createChannel(ClientChannel.CHANNEL_SHELL);
((ChannelShell) channel).setAgentForwarding(agentForward);
in= new ByteArrayInputStream( str.getBytes());
channel.setIn(new NoCloseInputStream( in ) );
}
channel.setOut(new NoCloseOutputStream( out));
channel.setErr(new NoCloseOutputStream(System.err));
channel.open().await();
channel.waitFor(ClientChannel.CLOSED, 0);
session.close(false);
} finally {
System.out.println( new String( byteOut.toByteArray()) );
client.stop();
}
}
}
pom.xml
<dependency>
<groupId>org.apache.sshd</groupId>
<artifactId>sshd-core</artifactId>
<version>0.8.0</version>
</dependency>