试图连接到一个带有内部代理类型的SSH服务器?

问题描述 投票:0回答:1

我有一个新的项目,在那里我应该连接到一个SSH服务器,使用代理(这是内部的)。问题是,如果我不使用代理,我得到一个错误说 "UnknownHost".但当我使用代理时,它说 "JSchException ProxySOCKS5: com.jcraft.jsch.JSchException: fail in SOCKS5 proxy".我对套接字,代理和所有这些类型的东西很陌生,所以每个建议都很感激。

JSch jsch = new JSch();
jsch.setKnownHosts("known_hosts");
com.jcraft.jsch.Session session = null;
com.jcraft.jsch.ProxySOCKS5 proxy = new ProxySOCKS5("localhost", 20004);
proxy.setUserPasswd(userName, password);

URL url = new URL("http", "<remoteUrl>", 22, filePath, null);

session = jsch.getSession(userName, hostName, 22);
session.setPassword(password);

session.setProxy(proxy );
session.connect(10000);

我确实尝试了一个不同的方向,我不使用jsch,只使用java.net。那段代码。

SocketAddress addr = new InetSocketAddress("localhost", 20004);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);

final String encodedSubaccount = new String(Base64.encodeBase64(subaccount.getBytes()));
final String encodedLocationId = new String(Base64.encodeBase64(locationId.getBytes()));

char[] pwdHelp = [];

Authenticator.setDefault(new Authenticator() {
      @Override
        protected java.net.PasswordAuthentication getPasswordAuthentication() {
           return new java.net.PasswordAuthentication("1." + encodedSubaccount + "." + encodedLocationId , pwdHelp);
                }
            });

URL url = new URL("http", "<remoteUrl>", 22, filePath, null);

HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy);

但当我尝试使用getResponseMessage()或code时 它只返回-1或null.

谁能帮帮我吗?

java networking groovy proxy jsch
1个回答
1
投票

我不是java开发人员,所以我只能帮助你解决基础架构部分的问题。

UnknownHost未知主机(UnknownHost):你不能直接连接,所以要用代理。UnknownHost 意味着javayour机器无法将DNS名解析为IP地址,也许这个DNS名是一个内部私有的。

在你的java代码中,你试图连接HTTP协议而不是SSH协议。

具体任务是什么?

有人给你提供了一个内部的SocksProxy的IP和端口,而你必须通过内部的SSH服务器来连接?

或者

1.你要用SSH协议连接到内部服务器,创建一个本地SocksProxy,你要通过本地SocksProxy连接到内部服务器?

在2.的情况下,你可以用ssh命令和网页浏览器测试连接。

  1. SSH连接到内部服务器 ssh -D 1080 on-premise_remote_hosntame_or_IP
  2. 在浏览器中设置socksproxy: Socksproxy ip: 127.0.0.1, port: 1080
  3. 在Web浏览器中尝试连接到内部的webserver上
© www.soinside.com 2019 - 2024. All rights reserved.