使用JSch连接到SFTP时如何选择网络接口

阿尔潘达斯

我在通过JSch创建到远程SFTP服务器的会话时遇到问题:

我用来通过外壳连接sftp服务器的命令是:

sftp -o BindAddress=SOME_IP_ADDRRESS myUserName@HOST_IP_ADDR

及其正常工作,但是当我尝试使用Java(JSch)时,我遇到了超时异常。Java代码是

/* KEY_FILE_NAME = is a file with rsa public key */
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource(KEY_FILE_NAME).getFile());
JSch jsch = new JSch();
jsch.addIdentity(file.getAbsolutePath());
Properties hash = new Properties();
hash.put("StrictHostKeyChecking", "no");
logger.debug("SSh Server Host name >>" + SSH_SERVER_HOST_NAME + " || User Name >>" +  SSH_SERVER_USER_NAME);

session = jsch.getSession(SSH_SERVER_USER_NAME, SSH_SERVER_HOST_NAME);
UserInfo ui = new MyUserInfo();
session.setUserInfo(ui);
session.setConfig(hash);
session.setPort(22);
session.setTimeout(45000);
session.connect();

我得到的异常是:

com.jcraft.jsch.JSchException:超时:未建立套接字

我猜想它的到来是因为我没有在使用shell命令时设置我正在使用BindAddresswith-o选项。如果是这样,那么如何-o BindAddress在JSch中设置参数?还是我做错了什么,请提出建议。

马丁·普里克里(Martin Prikryl)

我认为在JSch中没有明确支持选择要从中进行连接的网络接口。

但是您可以实现一个SocketFactory接口,例如它Socket使用带有的构造函数重载localAddr创建实例

public Socket(InetAddress address, int port, InetAddress localAddr, int localPort)

(将0用作localPort

然后Session.setSocketFactory()在致电之前将工厂交给connect(),您应该会很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JSch连接到SFTP时如何选择网络接口

来自分类Dev

2个网络接口连接到互联网。根据域名选择使用

来自分类Dev

如何使用网络浏览器连接到SFTP服务器?

来自分类Dev

如何使用C ++以编程方式检测我的网络接口是否已连接到Internet?

来自分类Dev

如何连接到Linux上托管虚拟网络的接口

来自分类Dev

如何创建虚拟网络接口并将其连接到网桥

来自分类Dev

使用python绑定/连接到网络接口卡

来自分类Dev

未连接到网络时如何使用映射的网络驱动器?

来自分类Dev

如何使用wicd连接到WiFi网络?

来自分类Dev

如何使用wicd连接到WiFi网络?

来自分类Dev

当机器通过两个接口连接到同一网络时,如何分配IP?

来自分类Dev

使用SFTP连接到SoftLayer ObjectStorage时遇到问题

来自分类Dev

QTCPSocket-当主机连接到单独的网络时,如何强制连接到特定网络

来自分类Dev

从具有公共IP和私有IP的VM连接到Cloud SQL实例-如何确保为连接选择正确的网络接口?

来自分类Dev

使用VPC和对等网络时,如何从Google Cloud Run连接到MongoDB Atlas?

来自分类Dev

使用JSch连接到远程Windows机器

来自分类Dev

如何使用提供的SSH密钥连接到SFTP?

来自分类Dev

使用PuTTY从Windows连接到AWS Linux实例时的网络

来自分类Dev

连接到本地SQL Server网络接口时出现问题,错误:26

来自分类Dev

如何从终端连接到网络

来自分类Dev

如何从终端连接到网络

来自分类Dev

使用Eclipse连接到网络

来自分类Dev

如何使用python选择用于多播的网络接口

来自分类Dev

使用boto3连接到CloudFront时如何选择AWS配置文件

来自分类Dev

如何从 Ubuntu / KVM 设置网络接口以连接到 Windows 7 VM

来自分类Dev

如何使用QT或Windows API连接到无线WIFI网络?

来自分类Dev

如何使用AsyncTask连接到Android中的网络

来自分类Dev

如何使用nmcli连接到隐藏的wifi网络

来自分类Dev

如何使用大猩猩连接到网络套接字?

Related 相关文章

  1. 1

    使用JSch连接到SFTP时如何选择网络接口

  2. 2

    2个网络接口连接到互联网。根据域名选择使用

  3. 3

    如何使用网络浏览器连接到SFTP服务器?

  4. 4

    如何使用C ++以编程方式检测我的网络接口是否已连接到Internet?

  5. 5

    如何连接到Linux上托管虚拟网络的接口

  6. 6

    如何创建虚拟网络接口并将其连接到网桥

  7. 7

    使用python绑定/连接到网络接口卡

  8. 8

    未连接到网络时如何使用映射的网络驱动器?

  9. 9

    如何使用wicd连接到WiFi网络?

  10. 10

    如何使用wicd连接到WiFi网络?

  11. 11

    当机器通过两个接口连接到同一网络时,如何分配IP?

  12. 12

    使用SFTP连接到SoftLayer ObjectStorage时遇到问题

  13. 13

    QTCPSocket-当主机连接到单独的网络时,如何强制连接到特定网络

  14. 14

    从具有公共IP和私有IP的VM连接到Cloud SQL实例-如何确保为连接选择正确的网络接口?

  15. 15

    使用VPC和对等网络时,如何从Google Cloud Run连接到MongoDB Atlas?

  16. 16

    使用JSch连接到远程Windows机器

  17. 17

    如何使用提供的SSH密钥连接到SFTP?

  18. 18

    使用PuTTY从Windows连接到AWS Linux实例时的网络

  19. 19

    连接到本地SQL Server网络接口时出现问题,错误:26

  20. 20

    如何从终端连接到网络

  21. 21

    如何从终端连接到网络

  22. 22

    使用Eclipse连接到网络

  23. 23

    如何使用python选择用于多播的网络接口

  24. 24

    使用boto3连接到CloudFront时如何选择AWS配置文件

  25. 25

    如何从 Ubuntu / KVM 设置网络接口以连接到 Windows 7 VM

  26. 26

    如何使用QT或Windows API连接到无线WIFI网络?

  27. 27

    如何使用AsyncTask连接到Android中的网络

  28. 28

    如何使用nmcli连接到隐藏的wifi网络

  29. 29

    如何使用大猩猩连接到网络套接字?

热门标签

归档