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


Java JSchException類代碼示例

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


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

示例1: build

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
public JSch build() throws JSchException {
    LOGGER.debug("Initializing JSch Logger");
    JSch.setLogger(new JschLogger());
    final JSch jsch = new JSch();
    try {
        if (null != knownHostsFileName && new File(knownHostsFileName).exists()) {
            jsch.setKnownHosts(knownHostsFileName);
        }
        if (null != privateKeyFileName && new File(privateKeyFileName).exists()) {
            jsch.addIdentity(privateKeyFileName);
        }
    } catch (JSchException e) {
        LOGGER.error("Could not access known hosts or private key file.", e);
        if (!(e.getCause() instanceof FileNotFoundException)) {
            throw new JSchException();
        }
    }
    return jsch;
}
 
開發者ID:cerner,項目名稱:jwala,代碼行數:20,代碼來源:JschBuilder.java

示例2: testTestCommand

import com.jcraft.jsch.JSchException; //導入依賴的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: SSHShell

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

示例4: work

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
protected void work() throws IOException, CancellationException, JSchException, SftpException, ExecutionException, InterruptedException {
    if (LOG.isLoggable(Level.FINE)) {
        LOG.log(Level.FINE, "{0} started", getTraceName());
    }
    ChannelSftp cftp = getChannel();
    RemoteStatistics.ActivityID activityID = RemoteStatistics.startChannelActivity("download", srcFileName); // NOI18N
    try {
        cftp.get(srcFileName, dstFileName);
    } catch (SftpException e) {
        if (MiscUtils.mightBrokeSftpChannel(e)) {
            cftp.quit();
        }
        throw decorateSftpException(e, srcFileName);
    } finally {
        releaseChannel(cftp);
        RemoteStatistics.stopChannelActivity(activityID, new File(dstFileName).length());
    }
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:19,代碼來源:SftpSupport.java

示例5: createSession

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

示例6: get

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
@Override
public SessionFactory get() {
  if (sessionFactory == null) {
    try {
      synchronized (this) {
        System.setProperty(DefaultSessionFactory.PROPERTY_JSCH_KNOWN_HOSTS_FILE, knownHosts);
        sessionFactory = new DefaultSessionFactory();
        sessionFactory.setPort(sshPort);
        LOG.debug("Session factory created for {}@{}:{}", sessionFactory.getUsername(), sessionFactory.getHostname(),
            sessionFactory.getPort());
      }
      sessionFactory.setIdentitiesFromPrivateKeys(identityKeys);
    } catch (JSchException | RuntimeException e) {
      throw new WaggleDanceException(
          "Unable to create factory with knownHosts=" + knownHosts + " and identityKeys=" + identityKeys, e);
    }
  }
  return sessionFactory;
}
 
開發者ID:HotelsDotCom,項目名稱:waggle-dance,代碼行數:20,代碼來源:SessionFactorySupplier.java

示例7: setupJSchIdentityRepository

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
private boolean setupJSchIdentityRepository (JSch jsch, String identityFile, boolean preferAgent) throws JSchException {
    boolean agentUsed = false;
    if (preferAgent) {
        Connector con = ConnectorFactory.getInstance().createConnector(ConnectorFactory.ConnectorKind.ANY);
        if (con != null) {
            IdentityRepository irepo = new IdentityRepositoryImpl(con);
            if (irepo.getStatus() == IdentityRepository.RUNNING) {
                jsch.setIdentityRepository(irepo);
                agentUsed = true;
            }
        }
    }
    if (!agentUsed) {
        jsch.setIdentityRepository(null);
        // remove all identity files
        jsch.removeAllIdentity();
        // and add the one specified by CredentialsProvider
        jsch.addIdentity(identityFile);
    }
    return agentUsed;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:22,代碼來源:JGitSshSessionFactory.java

示例8: call

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
@Override
public ExecResults call() throws Exception {
    int rc;
    List<String> error = new LinkedList<>();
    try {
        channel.connect();
        channel.get(remoteLoc, file.getAbsolutePath());
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Completed downloading [" + file.getAbsolutePath() + "] to [" + remoteLoc + "]");
        }
    } catch (JSchException | SftpException e) {
        String msg = "Encountered problems when downloading [" + remoteLoc + "]. Root cause : " + e.getMessage();
        error.add(msg);
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Failed downloading [" + file.getAbsolutePath() + "] to [" + remoteLoc + "]", e);
        }
    } finally {
        rc = channel.getExitStatus();
        channel.disconnect();
    }
    return new ExecResults(new LinkedList<>(), error, rc);
}
 
開發者ID:RationaleEmotions,項目名稱:SimpleSSH,代碼行數:23,代碼來源:ScpDownloadFileWorker.java

示例9: isValidSSHKeyFile

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
public static boolean isValidSSHKeyFile(String filename) {
    JSch test = new JSch();

    try {
        test.addIdentity(filename);
    } catch (JSchException ex) {
        return false;
    }

    return true;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:12,代碼來源:Authentication.java

示例10: openSession

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
protected Session openSession(final ProcessContext context) throws JSchException {
    final JSch jsch = new JSch();
    final String hostKeyVal = context.getProperty(HOST_KEY_FILE).getValue();
    if (hostKeyVal != null) {
        jsch.setKnownHosts(hostKeyVal);
    }

    final Session session = jsch.getSession(context.getProperty(USERNAME).evaluateAttributeExpressions().getValue(),
            context.getProperty(HOSTNAME).evaluateAttributeExpressions().getValue(),
            context.getProperty(PORT).evaluateAttributeExpressions().asInteger().intValue());

    final Properties properties = new Properties();
    properties.setProperty("StrictHostKeyChecking", context.getProperty(STRICT_HOST_KEY_CHECKING).asBoolean() ? "yes" : "no");
    properties.setProperty("PreferredAuthentications", "publickey,password,keyboard-interactive");

    final PropertyValue compressionValue = context.getProperty(USE_COMPRESSION);
    if (compressionValue != null && "true".equalsIgnoreCase(compressionValue.getValue())) {
        properties.setProperty("compression.s2c", "[email protected],zlib,none");
        properties.setProperty("compression.c2s", "[email protected],zlib,none");
    } else {
        properties.setProperty("compression.s2c", "none");
        properties.setProperty("compression.c2s", "none");
    }

    session.setConfig(properties);

    final String privateKeyFile = context.getProperty(PRIVATE_KEY_PATH).evaluateAttributeExpressions().getValue();
    if (privateKeyFile != null) {
        jsch.addIdentity(privateKeyFile, context.getProperty(PRIVATE_KEY_PASSPHRASE).evaluateAttributeExpressions().getValue());
    }

    final String password = context.getProperty(PASSWORD).evaluateAttributeExpressions().getValue();
    if (password != null) {
        session.setPassword(password);
    }

    session.setTimeout(context.getProperty(CONNECTION_TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue());
    session.connect();
    return session;
}
 
開發者ID:Asymmetrik,項目名稱:nifi-nars,代碼行數:41,代碼來源:AbstractScpProcessor.java

示例11: call

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
@Override
public ExecResults call() throws Exception {
    int rc;
    List<String> error = new LinkedList<>();
    try (InputStream stream = new FileInputStream(file)) {
        channel.connect();
        channel.put(stream, remoteLoc + "/" + file.getName());
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Completed uploading [" + file.getAbsolutePath() + "] to [" + remoteLoc + "]");
        }
    } catch (JSchException | SftpException e) {
        String msg = "Encountered problems when uploading [" + remoteLoc + "]. Root cause : " + e.getMessage();
        error.add(msg);
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Failed uploading [" + file.getAbsolutePath() + "] to [" + remoteLoc + "]", e);
        }
    } finally {
        rc = channel.getExitStatus();
        channel.disconnect();
    }
    return new ExecResults(new LinkedList<>(), error, rc);
}
 
開發者ID:RationaleEmotions,項目名稱:SimpleSSH,代碼行數:23,代碼來源:ScpUploadFileWorker.java

示例12: connect

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
public static Session connect(String host, Integer port, String user, String password) throws JSchException{
	Session session = null;
	try {
		JSch jsch = new JSch();
		if(port != null){
			session = jsch.getSession(user, host, port.intValue());
		}else{
			session = jsch.getSession(user, host);
		}
		session.setPassword(password);
		
		session.setConfig("StrictHostKeyChecking", "no");
		//time out
		session.connect(3000);
	} catch (JSchException e) {
		e.printStackTrace();
		System.out.println("SFTPUitl connection error");
		throw e;
	}
	return session;
}
 
開發者ID:zhuyuqing,項目名稱:BestConfig,代碼行數:22,代碼來源:SFTPUtil.java

示例13: initSessionFactory

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
private void initSessionFactory() {
    JschConfigSessionFactory sshSessionFactory = new JschConfigSessionFactory() {
        @Override
        protected void configure(Host host, Session session) {
            session.setConfig("StrictHostKeyChecking", "no");
        }

        @Override
        protected JSch createDefaultJSch(FS fs) throws JSchException {
            JSch jSch = super.createDefaultJSch(fs);

            // apply customized private key
            if (privateKeyPath != null) {
                jSch.removeAllIdentity();
                jSch.addIdentity(privateKeyPath.toString());
            }

            return jSch;
        }
    };

    transportConfigCallback = transport -> {
        SshTransport sshTransport = (SshTransport) transport;
        sshTransport.setSshSessionFactory(sshSessionFactory);
    };
}
 
開發者ID:FlowCI,項目名稱:flow-platform,代碼行數:27,代碼來源:GitSshClient.java

示例14: createTCPProxy

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
private void createTCPProxy() {
	try {
		final String cleanCommand = String.format("sudo docker ps -a | grep 'hours ago' | awk '{print $1}' | xargs --no-run-if-empty sudo docker rm",
				containerName,
				this.targetHost,
				this.targetPort,
				sourceIPs,
				ImageRegistry.get().tcpProxy());
		LOGGER.info("Establishing SSH shell");
		ssh = SshUtil.getInstance()
				.createSshSession(TestConfiguration.proxyHostUsername(), getProxyHost());
		ssh.connect();
		LOGGER.debug("Connected to ssh console");

		final ChannelExec cleanChannel = (ChannelExec) ssh.openChannel("exec");
		cleanChannel.setPty(true);
		cleanChannel.setCommand(cleanCommand);
		cleanChannel.setInputStream(null);
		cleanChannel.setOutputStream(System.err);

		LOGGER.debug("Executing command: '{}'", cleanCommand);
		cleanChannel.connect();
		cleanChannel.disconnect();

		final String command = String.format("sudo docker run -it --name %s --net=host --rm -e AB_OFF=true -e TARGET_HOST=%s -e TARGET_PORT=%s -e TARGET_VIA=%s %s",
				containerName,
				this.targetHost,
				this.targetPort,
				sourceIPs,
				ImageRegistry.get().tcpProxy());
		LOGGER.info("Establishing SSH shell");
		ssh = SshUtil.getInstance()
				.createSshSession(TestConfiguration.proxyHostUsername(), getProxyHost());
		ssh.connect();
		LOGGER.debug("Connected to ssh console");

		final ChannelExec channel = (ChannelExec) ssh.openChannel("exec");
		channel.setPty(true);
		channel.setCommand(command);
		channel.setInputStream(null);
		channel.setOutputStream(System.err);

		LOGGER.debug("Executing command: '{}'", command);
		channel.connect();
		final LineIterator li = IOUtils.lineIterator(new InputStreamReader(channel.getInputStream()));
		final Pattern portLine = Pattern.compile(".*Listening on port ([0-9]*).*$");
		listenPort = 0;
		while (li.hasNext()) {
			final String line = li.next();
			LOGGER.trace("Shell line: {}", line);
			final Matcher m = portLine.matcher(line);
			if (m.matches()) {
				listenPort = Integer.parseInt(m.group(1));
				LOGGER.info("Connection listening on port {}", listenPort);
				break;
			}
		}
		channel.disconnect();
	} catch (final JSchException | IOException e) {
		LOGGER.debug("Error in creating SSH connection to proxy host", e);
		throw new IllegalStateException("Cannot open SSH connection", e);
	}
}
 
開發者ID:xtf-cz,項目名稱:xtf,代碼行數:64,代碼來源:ProxiedConnectionManager.java

示例15: helpCreateStart

import com.jcraft.jsch.JSchException; //導入依賴的package包/類
/**
 * Orchestrates ZIP upload and sends commands through SSH.
 * Depending on the artifact type the method will use create or start scripts.
 *
 * @param type The artifact type which determines the nature of the method
 */
private void helpCreateStart(ArtifactType type) throws JSchException {

    for(ArrayList<Node> currentBranch : allBranches){
        MachineNode mNode = (MachineNode) currentBranch.get(0);
        makeSSHConnection(mNode);
        if (type == ArtifactType.CREATE){
            ssh.uploadAndUnzipZip(zip);
        }

        for(int i=1; i<currentBranch.size();i++){
            ServiceNode currentNode = (ServiceNode) currentBranch.get(i);
            ArtifactPath createPath = currentNode.getImplementationArtifact(ArtifactType.CREATE);
            ArtifactPath startPath = currentNode.getImplementationArtifact(ArtifactType.START);

            if(type==ArtifactType.CREATE){
                executeScript(createPath);
                executeScript(startPath);
            } else {
                executeScript(startPath);
            }
        }
        ssh.close();
    }
}
 
開發者ID:StuPro-TOSCAna,項目名稱:stupro_toscana_vorprojekt,代碼行數:31,代碼來源:Engine.java


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