Java 客户端具有私钥的套接字

Java 客户端具有私钥的套接字,java,sockets,client,Java,Sockets,Client,现在我有一个Server.java脚本,它正在等待与侦听端口建立连接。它目前正在我的Amazon实例上运行 我还有一个Client.java文件,试图将数据发送到本地运行的服务器 目前的问题是(如果你知道Amazon云,你也知道这一点),Amazon Ubuntu实例需要一个私钥来确认RSA身份验证。有没有办法用插座来做这个?我查看了构造函数,找不到任何东西可以为该键提供另一个参数 要使用SSH,我必须这样做,即:SSH-I key.pemroot@server.amazonaws.com 客户

现在我有一个Server.java脚本,它正在等待与侦听端口建立连接。它目前正在我的Amazon实例上运行

我还有一个Client.java文件,试图将数据发送到本地运行的服务器

目前的问题是(如果你知道Amazon云,你也知道这一点),Amazon Ubuntu实例需要一个私钥来确认RSA身份验证。有没有办法用插座来做这个?我查看了构造函数,找不到任何东西可以为该键提供另一个参数

要使用SSH,我必须这样做,即:
SSH-I key.pemroot@server.amazonaws.com

客户。爪哇

import java.io.PrintWriter;
import java.net.Socket;

class Client {
    public static void main(String args[]) {
        String data = "toobie ornaught toobie";
        try {
            Socket skt = new Socket("my ubuntu instance", 1235);
            System.out.print("Server has connected!\n");
            PrintWriter out = new PrintWriter(skt.getOutputStream(), true);
            System.out.print("Sending string: '" + data + "'\n");
            out.print(data);
            out.close();
            skt.close();
        } catch (Exception e) {
            System.out.print("Whoops! It didn't work!\n");
        }
    }
}

你很困惑。TCP套接字与ssh无关(除了ssh使用TCP套接字)。SSH需要RSA密钥。您正在打开一个普通TCP套接字。密钥和其他身份验证内容不适用。 您需要做的是允许您的端口号通过自动在EC2实例上运行的防火墙