+++ /dev/null
-package de.hacksaar.javatuer;
-
-import com.jcraft.jsch.*;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-public class SshClient {
- private static final String TAG = "SshClient";
- private final String host;
- private final String username;
- private final int port;
- private final JSch jSch;
- private final TuerLogging log;
- private Session session;
- private Channel channel;
-
- public SshClient(String host, String username, int port, TuerLogging log) {
- this.host = host;
- this.username = username;
- this.port = port;
- this.log = log;
- JSch.setLogger(log);
- jSch = new JSch();
- }
-
- public void addPrivateKey(String keyFilePath) throws JSchException {
- jSch.addIdentity(keyFilePath);
- }
-
- public void addPrivateKey(String keyFilePath, String passphrase) throws JSchException {
- jSch.addIdentity(keyFilePath, passphrase);
- }
-
- public void disconnect() {
- channel.disconnect();
- channel = null;
- session.disconnect();
- session = null;
- }
-
- public String getHost() {
- return host;
- }
-
- public InputStream getInputStream() throws IOException {
- if (channel == null) {
- return null;
- }
- return channel.getInputStream();
- }
-
- public OutputStream getOutputStream() throws IOException {
- if (channel == null) {
- return null;
- }
- return channel.getOutputStream();
- }
-
- public int getPort() {
- return port;
- }
-
- public String getUsername() {
- return username;
- }
-
- public boolean isConnected() {
- return channel != null && channel.isConnected() && session != null && session.isConnected();
- }
-
- public void login(final String password) throws JSchException {
- login(new UserInfo() {
-
- @Override
- public String getPassphrase() {
- return null;
- }
-
- @Override
- public String getPassword() {
- return password;
- }
-
- @Override
- public boolean promptPassphrase(String s) {
- return false;
- }
-
- @Override
- public boolean promptPassword(String s) {
- return true;
- }
-
- @Override
- public boolean promptYesNo(String s) {
- return false;
- }
-
- @Override
- public void showMessage(String s) {
- log.info(TAG, s);
- }
- });
- }
-
- public void login() throws JSchException {
- login(new UserInfo() {
-
- @Override
- public String getPassphrase() {
- return null;
- }
-
- @Override
- public String getPassword() {
- return null;
- }
-
- @Override
- public boolean promptPassphrase(String s) {
- return false;
- }
-
- @Override
- public boolean promptPassword(String s) {
- return false;
- }
-
- @Override
- public boolean promptYesNo(String s) {
- return false;
- }
-
- @Override
- public void showMessage(String s) {
- log.info(TAG, s);
- }
- });
- }
-
- public void login(UserInfo userInfo) throws JSchException {
- log.debug(TAG, "Creating session");
- if (session == null) {
- session = jSch.getSession(username, host, port);
- }
- if (!session.isConnected()) {
- session.setUserInfo(userInfo);
- log.debug(TAG, "Connecting");
- session.connect();
- log.debug(TAG, "Opening channel");
- channel = session.openChannel("shell");
- channel.connect();
- }
- }
-
-}