【发布时间】:2021-11-13 04:44:27
【问题描述】:
我正在尝试创建一个 SSH 会话并连接到 EC2 实例中的 elasticsearch。我正在使用此代码来执行此操作,但它失败了
java.util.concurrent.ExecutionException: java.net.ConnectException: Connection refused
ElasticsearchException[]; nested: ExecutionException[java.net.ConnectException: Connection refused]; nested: ConnectException[Connection refused];
at org.elasticsearch.client.RestHighLevelClient.performClientRequest(RestHighLevelClient.java:2078)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1732)
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1717)
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1684)
at org.elasticsearch.client.LicenseClient.getBasicStatus(LicenseClient.java:191)
I am trying to create an SSH tunnel and connect to elasticsearch that is in EC2 instance. I am using this code to do that but it is failing with
java.util.concurrent.ExecutionException: java.net.ConnectException: Connection refused
ElasticsearchException[]; nested: ExecutionException[java.net.ConnectException: Connection refused]; nested: ConnectException[Connection refused];
at org.elasticsearch.client.RestHighLevelClient.performClientRequest(RestHighLevelClient.java:2078)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1732)
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1717)
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1684)
at org.elasticsearch.client.LicenseClient.getBasicStatus(LicenseClient.java:191)
这是我正在使用的代码:
Session session = null;
String sshKeyFile = "/path/testSSH.pem";
try {
JSch jsc = new JSch();
jsc.addIdentity(sshKeyFile);
session = jsc.getSession("user", "ec2-instance", 22);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
int i = session.setPortForwardingL(30000, "localhost", 22, null);
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("user_name", "pass"));
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200));
builder.setHttpClientConfigCallback(a -> a.setDefaultCredentialsProvider(credentialsProvider));
RestHighLevelClient client = new RestHighLevelClient(builder);
GetBasicStatusResponse response = client.license().getBasicStatus(RequestOptions.DEFAULT);
response.isEligibleToStartBasic();
System.out.println(response.toString());
} catch (JSchException e) {
e.printStackTrace();
}
可能我错过了什么。请在这里提供任何帮助。
【问题讨论】:
标签: elasticsearch amazon-ec2 ssh rest ssh-tunnel