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


Java JSch.getSession方法代碼示例

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


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

示例1: listFiles

import com.jcraft.jsch.JSch; //導入方法依賴的package包/類
/**
 * Lists directory files on remote server.
 * @throws URISyntaxException 
 * @throws JSchException 
 * @throws SftpException 
 */
private void listFiles() throws URISyntaxException, JSchException, SftpException {
	
	JSch jsch = new JSch();
	JSch.setLogger(new JschLogger());
	setupSftpIdentity(jsch);

	URI uri = new URI(sftpUrl);
	Session session = jsch.getSession(sshLogin, uri.getHost(), 22);
	session.setConfig("StrictHostKeyChecking", "no");
	session.connect();
	System.out.println("Connected to SFTP server");

	Channel channel = session.openChannel("sftp");
	channel.connect();
	ChannelSftp sftpChannel = (ChannelSftp) channel;
	Vector<LsEntry> directoryEntries = sftpChannel.ls(uri.getPath());
	for (LsEntry file : directoryEntries) {
		System.out.println(String.format("File - %s", file.getFilename()));
	}
	sftpChannel.exit();
	session.disconnect();
}
 
開發者ID:szaqal,項目名稱:KitchenSink,代碼行數:29,代碼來源:App.java

示例2: testTestCommand

import com.jcraft.jsch.JSch; //導入方法依賴的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

示例3: executeCommand

import com.jcraft.jsch.JSch; //導入方法依賴的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

示例4: SSHShell

import com.jcraft.jsch.JSch; //導入方法依賴的package包/類
/**
 * Creates SSHShell.
 *
 * @param host the host name
 * @param port the ssh port
 * @param userName the ssh user name
 * @param sshPrivateKey the ssh password
 * @return the shell
 * @throws JSchException
 * @throws IOException
 */
private SSHShell(String host, int port, String userName, byte[] sshPrivateKey)
    throws JSchException, IOException {
    Closure expectClosure = getExpectClosure();
    for (String linuxPromptPattern : new String[]{"\\>", "#", "~#", "~\\$"}) {
        try {
            Match match = new RegExpMatch(linuxPromptPattern, expectClosure);
            linuxPromptMatches.add(match);
        } catch (MalformedPatternException malformedEx) {
            throw new RuntimeException(malformedEx);
        }
    }
    JSch jsch = new JSch();
    jsch.setKnownHosts(System.getProperty("user.home") + "/.ssh/known_hosts");
    jsch.addIdentity(host, sshPrivateKey, (byte[]) null, (byte[]) null);
    this.session = jsch.getSession(userName, host, port);
    this.session.setConfig("StrictHostKeyChecking", "no");
    this.session.setConfig("PreferredAuthentications", "publickey,keyboard-interactive,password");
    session.connect(60000);
    this.channel = (ChannelShell) session.openChannel("shell");
    this.expect = new Expect4j(channel.getInputStream(), channel.getOutputStream());
    channel.connect();
}
 
開發者ID:Azure-Samples,項目名稱:acr-java-manage-azure-container-registry,代碼行數:34,代碼來源:SSHShell.java

示例5: connectAndExecute

import com.jcraft.jsch.JSch; //導入方法依賴的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: createSession

import com.jcraft.jsch.JSch; //導入方法依賴的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

示例7: testJschConnection

import com.jcraft.jsch.JSch; //導入方法依賴的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

示例8: transferFile

import com.jcraft.jsch.JSch; //導入方法依賴的package包/類
/**
 * Transfer a file to remote destination via JSCH library using sFTP protocol
 * 
 * @param username String remote SFTP server user name.
 * @param password String remote SFTP server user password
 * @param host String remote SFTP server IP address or host name.
 * @param file File to transfer to SFTP Server.
 * @param transferProtocol protocol to transfer a file. {@link FileTransferProtocol}
 * @return boolean true if file is transfered otherwise false.
 * @throws ApplicationException
 */
public static boolean transferFile(final String username, final String password, final String host,
                                   final File file, final FileTransferProtocol transferProtocol)
    throws ApplicationException {
    // currently can deal with sftp only.
    LOGGER.trace("Invoking transferFile...");
    JSch jsch = new JSch();
    try {
        Session session = jsch.getSession(username, host);
        LOGGER.debug("Session Host: " + session.getHost());
        session.setPassword(password);
        Properties properties = new Properties();
        properties.put("StrictHostKeyChecking", "no");
        session.setConfig(properties);
        LOGGER.debug("Connecting to a session Host Server...");
        session.connect();
        LOGGER.debug("session is established with host server.");
        Channel channel = session.openChannel(transferProtocol.ftpStringRepresentation());
        LOGGER.debug("Connecting to a sftp Channel...");
        channel.connect();
        LOGGER.debug("Connected with sftp Channel.");
        ChannelSftp channelSftp = (ChannelSftp) channel;
        channelSftp.put(new FileInputStream(file), file.getName());
        LOGGER.debug("File transfered successfully");
        channelSftp.exit();
        LOGGER.debug("sftp channel disconnected.");
        channel.disconnect();
        LOGGER.debug("channel disconnected.");
        session.disconnect();
        LOGGER.debug("session disconnected.");
        return true;
    } catch (JSchException | FileNotFoundException | SftpException e) {
        LOGGER.error(e.getMessage(), e.getCause());
        throw new ApplicationException(e.getMessage(), ApplicationSeverity.ERROR, e.getCause(), e);
    }
}
 
開發者ID:SanjayMadnani,項目名稱:com.sanjay.common.common-utils,代碼行數:47,代碼來源:FileUtil.java

示例9: connect

import com.jcraft.jsch.JSch; //導入方法依賴的package包/類
/**
 * Connects to and maintains a ssh connection.  If this method is called
 * twice, a reconnection is attempted
 *
 * @throws SshException          If the members of the SshConnection class are not properly set or if
 *                               there was a problem actually connecting to the specified host.
 * @throws IllegalStateException If connect() was called once successfully. connect() and any setter
 *                               method can't be called after successfully connecting without first
 *                               disconnecting.
 */
public void connect() throws SshException {
    exceptIfAlreadyConnected();

    try {
        JSch jsch = new JSch();

        validateMembers();

        if (this.usePrivateKey) {
            jsch.addIdentity(this.privateKeyFile.getAbsolutePath());
        }

        this.sshSession = jsch.getSession(this.username, this.host, this.port);
        this.sshSession.setConfig(SSH_PROPERTIES);

        if (!this.usePrivateKey && this.password != null) {
            this.sshSession.setPassword(this.password);
        }

        this.sshSession.connect();
    } catch (JSchException e) {
        throw new SshException(e);
    }

}
 
開發者ID:houdejun214,項目名稱:lakeside-java,代碼行數:36,代碼來源:SshConnection.java

示例10: ssh

import com.jcraft.jsch.JSch; //導入方法依賴的package包/類
private static void ssh(String user, String passwd, String host){
    try{JSch jsch = new JSch();
        session = jsch.getSession(user, host, 22);
        session.setPassword(passwd);
        session.setConfig("StrictHostKeyChecking", "no");
        session.connect();
        Channel channel = session.openChannel("shell");
        channel.connect();
        Thread.sleep(1000);
        channel.disconnect();
        session.disconnect();
    }catch(Exception e){
        e.printStackTrace();
    }
}
 
開發者ID:twister,項目名稱:twister.github.io,代碼行數:16,代碼來源:RunnerRepository.java

示例11: initializeSftp

import com.jcraft.jsch.JSch; //導入方法依賴的package包/類
private void initializeSftp(){
    try{
        JSch jsch = new JSch();
        session = jsch.getSession(RunnerRepository.user, RunnerRepository.host, 22);
        session.setPassword(RunnerRepository.password);
        Properties config = new Properties();
        config.put("StrictHostKeyChecking", "no");
        session.setConfig(config);
        session.connect();
        Channel channel = session.openChannel("sftp");
        channel.connect();
        connection = (ChannelSftp)channel;
    } catch (Exception e){
        e.printStackTrace();
    }
}
 
開發者ID:twister,項目名稱:twister.github.io,代碼行數:17,代碼來源:ConfigTree.java

示例12: userpassword

import com.jcraft.jsch.JSch; //導入方法依賴的package包/類
public static boolean userpassword(String user,String password, String host){
        boolean passed = false;
            try{
                JSch jsch = new JSch();
                session = jsch.getSession(user, host, 22);
                session.setPassword(password);
                Properties config = new Properties();
                config.put("StrictHostKeyChecking", "no");
                session.setConfig(config);
                session.connect();
                Channel channel = session.openChannel("sftp");
                channel.connect();
                connection = (ChannelSftp)channel;
                try{USERHOME = connection.pwd();}
                catch(Exception e){
                    System.out.println("ERROR: Could not retrieve remote user home directory");}
                REMOTECONFIGDIRECTORY = USERHOME+"/twister/config/";
                passed = true;
            }
            catch(JSchException ex){
                if(ex.toString().indexOf("Auth fail")!=-1)
                    System.out.println("wrong user and/or password");
                else{ex.printStackTrace();
                    System.out.println("Could not connect to server");}}
//                 }
        return true;}
 
開發者ID:twister,項目名稱:twister.github.io,代碼行數:27,代碼來源:RunnerRepository.java

示例13: scpFileFromRemoteServer

import com.jcraft.jsch.JSch; //導入方法依賴的package包/類
/**
 * 
 * Scp file from remote server
 * 
 * @param host
 * @param user
 * @param password
 * @param remoteFile
 * @param localFile
 * @throws JSchException 
 * @throws IOException 
 */
public void scpFileFromRemoteServer(String host, String user, String password, String remoteFile, String localFile) throws JSchException, IOException {
	
	String prefix = null;
	if (new File(localFile).isDirectory()) {
		prefix = localFile + File.separator;
	}

	JSch jsch = new JSch();
	Session session = jsch.getSession(user, host, 22);

	// username and password will be given via UserInfo interface.
	UserInfo userInfo = new UserInformation(password);
	session.setUserInfo(userInfo);
	session.connect();

	// exec 'scp -f remoteFile' remotely
	String command = "scp -f " + remoteFile;
	Channel channel = session.openChannel("exec");
	((ChannelExec) channel).setCommand(command);

	// get I/O streams for remote scp
	OutputStream out = channel.getOutputStream();
	InputStream in = channel.getInputStream();

	channel.connect();

	byte[] buf = new byte[1024];

	// send '\0'
	buf[0] = 0;
	out.write(buf, 0, 1);
	out.flush();
	
	readRemoteFileAndWriteToLocalFile(localFile, prefix, out, in, buf);

	session.disconnect();		
}
 
開發者ID:capitalone,項目名稱:Hydrograph,代碼行數:50,代碼來源:SCPUtility.java

示例14: sshCall

import com.jcraft.jsch.JSch; //導入方法依賴的package包/類
protected void sshCall(String username, String password, SshExecutor executor, String channelType) {
    try {
        JSch jsch = new JSch();
        Session session = jsch.getSession(username, props.getShell().getHost(), props.getShell().getPort());
        session.setPassword(password);
        Properties config = new Properties();
        config.put("StrictHostKeyChecking", "no");
        session.setConfig(config);
        session.connect();
        Channel channel = session.openChannel(channelType);
        PipedInputStream pis = new PipedInputStream();
        PipedOutputStream pos = new PipedOutputStream();
        channel.setInputStream(new PipedInputStream(pos));
        channel.setOutputStream(new PipedOutputStream(pis));
        channel.connect();
        try {
            executor.execute(pis, pos);
        } finally {
            pis.close();
            pos.close();
            channel.disconnect();
            session.disconnect();
        }
    } catch(JSchException | IOException ex) {
        fail(ex.toString());
    }
}
 
開發者ID:anand1st,項目名稱:sshd-shell-spring-boot,代碼行數:28,代碼來源:AbstractSshSupport.java

示例15: executeSSH

import com.jcraft.jsch.JSch; //導入方法依賴的package包/類
private boolean executeSSH(){ 
	//get deployment descriptor, instead of this hard coded.
	// or execute a script on the target machine which download artifact from nexus
       String command ="nohup java -jar -Dserver.port=8091 ./work/codebox/chapter6/chapter6.search/target/search-1.0.jar &";
      try{	
   	   System.out.println("Executing "+ command);
          java.util.Properties config = new java.util.Properties(); 
          config.put("StrictHostKeyChecking", "no");
          JSch jsch = new JSch();
          Session session=jsch.getSession("rajeshrv", "localhost", 22);
          session.setPassword("rajeshrv");
          
          session.setConfig(config);
          session.connect();
          System.out.println("Connected");
           
          ChannelExec channelExec = (ChannelExec)session.openChannel("exec");
          InputStream in = channelExec.getInputStream();
          channelExec.setCommand(command);
          channelExec.connect();
         
          BufferedReader reader = new BufferedReader(new InputStreamReader(in));
          String line;
          int index = 0;

          while ((line = reader.readLine()) != null) {
              System.out.println(++index + " : " + line);
          }
          channelExec.disconnect();
          session.disconnect();

          System.out.println("Done!");

      }catch(Exception e){
          e.printStackTrace();
          return false;
      }
	
	return true;
}
 
開發者ID:rajeshrv,項目名稱:SpringMicroservice,代碼行數:41,代碼來源:DeploymentEngine.java


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