當前位置: 首頁>>代碼示例>>Java>>正文


Java Session類代碼示例

本文整理匯總了Java中com.jcraft.jsch.Session的典型用法代碼示例。如果您正苦於以下問題:Java Session類的具體用法?Java Session怎麽用?Java Session使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


Session類屬於com.jcraft.jsch包,在下文中一共展示了Session類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: fileFetch

import com.jcraft.jsch.Session; //導入依賴的package包/類
public static void fileFetch(String host, String user, String keyLocation, String sourceDir, String destDir) {
    JSch jsch = new JSch();
    Session session = null;
    try {
        // set up session
        session = jsch.getSession(user,host);
        // use private key instead of username/password
        session.setConfig(
                "PreferredAuthentications",
                "publickey,gssapi-with-mic,keyboard-interactive,password");
        jsch.addIdentity(keyLocation);
        java.util.Properties config = new java.util.Properties();
        config.put("StrictHostKeyChecking", "no");
        session.setConfig(config);
        session.connect();

        // copy remote log file to localhost.
        ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp");
        channelSftp.connect();
        channelSftp.get(sourceDir, destDir);
        channelSftp.exit();

    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        session.disconnect();
    }
}
 
開發者ID:thomas-young-2013,項目名稱:wherehowsX,代碼行數:29,代碼來源:SshUtils.java

示例2: executeCommand

import com.jcraft.jsch.Session; //導入依賴的package包/類
/**
 * Executes a given command. It opens exec channel for the command and closes
 * the channel when it's done.
 *
 * @param session ssh connection to a remote server
 * @param command command to execute
 * @return command output string if the command succeeds, or null
 */
private static String executeCommand(Session session, String command) {
    if (session == null || !session.isConnected()) {
        return null;
    }

    log.trace("Execute command {} to {}", command, session.getHost());

    try {
        Channel channel = session.openChannel("exec");
        ((ChannelExec) channel).setCommand(command);
        channel.setInputStream(null);
        InputStream output = channel.getInputStream();

        channel.connect();
        String result = CharStreams.toString(new InputStreamReader(output));
        channel.disconnect();

        log.trace("Result of command {} on {}: {}", command, session.getHost(), result);

        return result;
    } catch (JSchException | IOException e) {
        log.error("Failed to execute command {} on {} due to {}", command, session.getHost(), e.toString());
        return null;
    }
}
 
開發者ID:opencord,項目名稱:vtn,代碼行數:34,代碼來源:RemoteIpCommandUtil.java

示例3: testTestCommand

import com.jcraft.jsch.Session; //導入依賴的package包/類
@Test
public void testTestCommand() throws JSchException, IOException {
    JSch jsch = new JSch();
    Session session = jsch.getSession("admin", "localhost", properties.getShell().getPort());
    jsch.addIdentity("src/test/resources/id_rsa");
    Properties config = new Properties();
    config.put("StrictHostKeyChecking", "no");
    session.setConfig(config);
    session.connect();
    ChannelShell channel = (ChannelShell) session.openChannel("shell");
    PipedInputStream pis = new PipedInputStream();
    PipedOutputStream pos = new PipedOutputStream();
    channel.setInputStream(new PipedInputStream(pos));
    channel.setOutputStream(new PipedOutputStream(pis));
    channel.connect();
    pos.write("test run bob\r".getBytes(StandardCharsets.UTF_8));
    pos.flush();
    verifyResponse(pis, "test run bob");
    pis.close();
    pos.close();
    channel.disconnect();
    session.disconnect();
}
 
開發者ID:anand1st,項目名稱:sshd-shell-spring-boot,代碼行數:24,代碼來源:SshdShellAutoConfigurationWithPublicKeyAndBannerImageTest.java

示例4: executeCommand

import com.jcraft.jsch.Session; //導入依賴的package包/類
public void executeCommand(final String command) throws IOException { // Cliente SSH final
    JSch jsch = new JSch();
    Properties props = new Properties();
    props.put("StrictHostKeyChecking", "no");
    try {
        Session session = jsch.getSession(user, host, 22);
        session.setConfig(props);
        session.setPassword(password);
        session.connect();
        java.util.logging.Logger.getLogger(RemoteShell.class.getName())
                .log(Level.INFO, session.getServerVersion());

        Channel channel = session.openChannel("exec");
        ((ChannelExec) channel).setCommand(command);
        // Daqui para baixo é somente para imprimir a saida
        channel.setInputStream(null);

        ((ChannelExec) channel).setErrStream(System.err);

        InputStream in = channel.getInputStream();

        channel.connect();

        byte[] tmp = new byte[1024];
        while (true) {
            while (in.available() > 0) {
                int i = in.read(tmp, 0, 1024);
                if (i < 0) {
                    break;
                }
                System.out.print(new String(tmp, 0, i));
            }
            if (channel.isClosed()) {
                if (in.available() > 0) {
                    continue;
                }
                System.out
                        .println("exit-status: " + channel.getExitStatus());
                break;
            }
            try {
                Thread.sleep(1000);
            } catch (Exception ee) {
            }
        }
        channel.disconnect();
        session.disconnect();

    } catch (JSchException ex) {
        java.util.logging.Logger.getLogger(RemoteShell.class.getName())
                .log(Level.SEVERE, null, ex);
    }
}
 
開發者ID:nailtonvieira,項目名稱:pswot-cloud-java-spring-webapp,代碼行數:54,代碼來源:RemoteShell.java

示例5: connectAndExecute

import com.jcraft.jsch.Session; //導入依賴的package包/類
public static String connectAndExecute(String user, String host, String password, String command1) {
	String CommandOutput = null;
	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");

		Channel channel = session.openChannel("exec");
		((ChannelExec) channel).setCommand(command1);
		channel.setInputStream(null);
		((ChannelExec) channel).setErrStream(System.err);

		InputStream in = channel.getInputStream();

		channel.connect();
		byte[] tmp = new byte[1024];
		while (true) {
			while (in.available() > 0) {
				int i = in.read(tmp, 0, 1024);

				if (i < 0)
					break;
				// System.out.print(new String(tmp, 0, i));
				CommandOutput = new String(tmp, 0, i);
			}

			if (channel.isClosed()) {
				// System.out.println("exit-status: " +
				// channel.getExitStatus());
				break;
			}
			try {
				Thread.sleep(1000);
			} catch (Exception ee) {
			}
		}
		channel.disconnect();
		session.disconnect();
		// System.out.println("DONE");

	} catch (Exception e) {
		e.printStackTrace();
	}
	return CommandOutput;

}
 
開發者ID:saiscode,項目名稱:kheera,代碼行數:54,代碼來源:SeleniumGridManager.java

示例6: init

import com.jcraft.jsch.Session; //導入依賴的package包/類
ChannelSftp init(String filename) throws JSchException, UnsupportedEncodingException {
	jsch = new JSch();
	ConnectionInfo ci = splitStringToConnectionInfo(filename);

	Session session = jsch.getSession(ci.username, ci.host, ci.port);
	UserInfo ui = new SftpUserInfo(ci.password);
	session.setUserInfo(ui);

	session.connect();

	Channel channel = session.openChannel("sftp");
	channel.connect();
	ChannelSftp c = (ChannelSftp) channel;

	logDebug("success: init Sftp");
	return c;

}
 
開發者ID:PhilippC,項目名稱:keepass2android,代碼行數:19,代碼來源:SftpStorage.java

示例7: createSession

import com.jcraft.jsch.Session; //導入依賴的package包/類
private Session createSession(String host, Args args) throws JSchException {
  JSch jsch = new JSch();
  for (String keyFile : getKeyFiles()) {
    jsch.addIdentity(keyFile);
  }
  JSch.setLogger(new LogAdapter());

  Session session = jsch.getSession(args.user, host, args.sshPort);
  session.setConfig("StrictHostKeyChecking", "no");
  return session;
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:12,代碼來源:SshFenceByTcpPort.java

示例8: establishWithKey

import com.jcraft.jsch.Session; //導入依賴的package包/類
public static Session establishWithKey(String sshHost, int sshPort, String user, String keyFilePath) throws JSchException {
    File keyFile = new File(keyFilePath);
    if (!keyFile.exists()) {
        String errorMsg = "Could not find SSH public key file in path: " + keyFilePath;
        logger.info(errorMsg);
        throw new JSchException(errorMsg);
    }
    Session session;
    JSch jsch = new JSch();
    try {
        jsch.addIdentity(keyFile.getAbsolutePath());
        session = jsch.getSession(user, sshHost, sshPort);
    }
    catch (JSchException e) {
        logger.error("SSH connection attempt to host: " + sshHost + ":" + sshPort + " failed");
        throw e;
    }
    return connect(session, sshHost, sshPort);
}
 
開發者ID:razreg,項目名稱:ubongo,代碼行數:20,代碼來源:SSHConnection.java

示例9: testJschConnection

import com.jcraft.jsch.Session; //導入依賴的package包/類
@Test
public void testJschConnection() throws InterruptedException, SftpException, JSchException, IOException {
    JSch jsch = new JSch();
    String passphrase = "";
    jsch.addIdentity(privateKey,
        StringUtil.isEmpty(passphrase) ?
        null : passphrase);

    Session session = jsch.getSession(user, host, port);
    System.out.println("session created.");

    java.util.Properties config = new java.util.Properties();
    config.put("StrictHostKeyChecking", "no");
    config.put("PreferredAuthentications",
        "publickey,keyboard-interactive,password");
    session.setConfig(config);
    session.connect();
    Thread.sleep(500);
    session.disconnect();
}
 
開發者ID:sanchouss,項目名稱:InstantPatchIdeaPlugin,代碼行數:21,代碼來源:RemoteClientImplTest.java

示例10: pushToRepository

import com.jcraft.jsch.Session; //導入依賴的package包/類
/**
 * Push all changes and tags to given remote.
 *
 * @param git
 *     instance.
 * @param remote
 *     to be used.
 * @param passphrase
 *     to access private key.
 * @param privateKey
 *     file location.
 *
 * @return List of all results of given push.
 */
public Iterable<PushResult> pushToRepository(Git git, String remote, String passphrase, Path privateKey) {
    SshSessionFactory sshSessionFactory = new JschConfigSessionFactory() {
        @Override
        protected void configure(OpenSshConfig.Host host, Session session) {
            session.setUserInfo(new PassphraseUserInfo(passphrase));
        }

        @Override
        protected JSch createDefaultJSch(FS fs) throws JSchException {
            if (privateKey != null) {
                JSch defaultJSch = super.createDefaultJSch(fs);
                defaultJSch.addIdentity(privateKey.toFile().getAbsolutePath());
                return defaultJSch;
            } else {
                return super.createDefaultJSch(fs);
            }
        }
    };

    try {
        return git.push()
            .setRemote(remote)
            .setPushAll()
            .setPushTags()
            .setTransportConfigCallback(transport -> {
                SshTransport sshTransport = (SshTransport) transport;
                sshTransport.setSshSessionFactory(sshSessionFactory);
            })
            .call();
    } catch (GitAPIException e) {
        throw new IllegalStateException(e);
    }
}
 
開發者ID:arquillian,項目名稱:arquillian-algeron,代碼行數:48,代碼來源:GitOperations.java

示例11: close

import com.jcraft.jsch.Session; //導入依賴的package包/類
public synchronized void close() throws IOException {
  if (closed) {
    return;
  }
  super.close();
  closed = true;
  if (!channel.isConnected()) {
    throw new IOException(E_CLIENT_NOTCONNECTED);
  }

  try {
    Session session = channel.getSession();
    channel.disconnect();
    session.disconnect();
  } catch (JSchException e) {
    throw new IOException(StringUtils.stringifyException(e));
  }
}
 
開發者ID:nucypher,項目名稱:hadoop-oss,代碼行數:19,代碼來源:SFTPInputStream.java

示例12: keepSessionConnected

import com.jcraft.jsch.Session; //導入依賴的package包/類
private synchronized void keepSessionConnected(Channel channel){
    try {
        Session session = channel.getSession();
        boolean contains = false;
        for(Entry<Session, Integer> e2 : usedSessions.entrySet()){
            if (e2.getKey() == session) {
                contains = true;
                break;
            }
        }
        if(contains){
            usedSessions.put(session,usedSessions.get(session)+1);
        }
        else {
            usedSessions.put(session, 1);

        }
    } catch (JSchException e) {
        e.printStackTrace();
    }

}
 
開發者ID:archos-sa,項目名稱:aos-FileCoreLibrary,代碼行數:23,代碼來源:SFTPSession.java

示例13: releaseSession

import com.jcraft.jsch.Session; //導入依賴的package包/類
public synchronized void releaseSession(Channel channel) {
    try {

        Session session = channel.getSession();
        boolean contains = false;
        for(Entry<Session, Integer> e2 : usedSessions.entrySet()){
            if (e2.getKey() == session) {
                contains = true;
                break;
            }
        }
        if(contains){
            if(usedSessions.get(session)<=1){
                usedSessions.remove(session);
                if(!sessions.values().contains(session))
                    channel.getSession().disconnect();
            }
            else{
                usedSessions.put(session, usedSessions.get(session) - 1);
            }
        }
    } catch (JSchException e) {
        e.printStackTrace();
    }

}
 
開發者ID:archos-sa,項目名稱:aos-FileCoreLibrary,代碼行數:27,代碼來源:SFTPSession.java

示例14: removeSession

import com.jcraft.jsch.Session; //導入依賴的package包/類
public synchronized void removeSession(Uri cred){

        for(Entry<Credential, Session> e : sessions.entrySet()){
            Uri uri = Uri.parse(e.getKey().getUriString());
            if(uri.getHost().equals(cred.getHost())&&uri.getPort()==cred.getPort()){
                boolean doNotDisconnect = false;
                for(Entry<Session, Integer> e2 : usedSessions.entrySet()){
                     if (e2.getKey() == e.getValue()) {
                         doNotDisconnect = true;
                         break;
                     }
                }
                if(!doNotDisconnect) {
                    e.getValue().disconnect();
                }
                sessions.remove(e.getKey());
            }
        }


    }
 
開發者ID:archos-sa,項目名稱:aos-FileCoreLibrary,代碼行數:22,代碼來源:SFTPSession.java

示例15: create

import com.jcraft.jsch.Session; //導入依賴的package包/類
@Override
public Session create(ConnectionDetails connectionDetails) throws Exception {
    log.debug("Creating session for "+connectionDetails);
    Session session = null;
    try {
        byte[] privateKey = connectionDetails.getPrivateKey();
        if (privateKey != null) {
            jsch.addIdentity(connectionDetails.getUsername(), privateKey, null, connectionDetails.getPassword().getBytes());
        }
        session = jsch.getSession(connectionDetails.getUsername(), connectionDetails.getHost(), connectionDetails.getPort());
        session.setPassword(connectionDetails.getPassword());
        if (!hostKeyValidation) {
            session.setConfig("StrictHostKeyChecking", "no");
        }
        session.setDaemonThread(true);
        session.connect();
    } catch (Exception e) {
        log.error("Failed to connect to "+connectionDetails);
        throw e;
    }
    return session;
}
 
開發者ID:tilln,項目名稱:jmeter-sshmon,代碼行數:23,代碼來源:SSHSessionFactory.java


注:本文中的com.jcraft.jsch.Session類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。