Java 如何使用Jsch配置多个远程会话

Java 如何使用Jsch配置多个远程会话,java,sftp,jsch,file-copying,Java,Sftp,Jsch,File Copying,在我的应用程序中,我对2个不同的远程服务器有2个要求: 我必须将文件从本地主机复制到远程服务器X 将不同的文件从远程服务器Y复制到本地主机 我知道Jsch可以如下使用: JSch jsch = new JSch(); Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); jsch.addIdentity(privateKey, privateKey

在我的应用程序中,我对2个不同的远程服务器有2个要求:

  • 我必须将文件从本地主机复制到远程服务器X
  • 将不同的文件从远程服务器Y复制到本地主机
  • 我知道Jsch可以如下使用:

    JSch jsch = new JSch();
    
    Properties config = new Properties();
    config.put("StrictHostKeyChecking", "no");
    jsch.addIdentity(privateKey, privateKeyPassphrase);
    Session session = jsch.getSession(user, host, port);
    session.setConfig(config);
    session.connect(5000);
    
    使用上面的代码,我可以连接单个主机的会话。如何将不同的会话连接到不同的主机(在我的示例x和y中)

    无论是向远程主机复制还是从远程主机复制,我是否需要远程主机的私钥或公钥


    关于

    您必须建立到服务器X和服务器Y的连接(会话)。使用JSch,您可以在会话中读写。

    您不应该拥有任何其他系统的私钥。通常,您应该在KnownHosts文件中拥有所有主机的公钥,但由于您已设置StrictHostKeyChecking no,因此您可以不使用该项。(当然,您可能连接到假主机,或者获取伪造数据,或者将真实数据提供给骗子。)由于您使用密钥对进行身份验证,必须在两台主机上分别配置该密钥对的公共部分。只需使用不同的
    主机重复您的代码即可???你基本上是在问这样一个问题,“我有一个代码要添加
    1+2
    ,但现在我也想添加
    2+3
    ——我该怎么做?”@MartinPrikryl好的,我想应该有一个地方来配置所有远程连接。无论如何,谢谢这就是我要问的,我知道如何创建与单个远程服务器的会话。如何创建/使用多个JSCH会话使用以下内容。sessionsession1=jsch.getSession(user1、host1、port1);session1.setConfig(config1);会话1.连接(5000);sessionsession2=jsch.getSession(user2、host2、port2);session2.setConfig(config2);会话2.连接(5000);