带有私钥客户端的套接字

时间:2012-10-31 03:49:31

标签: java sockets client

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

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

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

到SSH我必须这样做,即:ssh -i key.pem root@server.amazonaws.com

客户端。的java

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");
        }
    }
}

1 个答案:

答案 0 :(得分:2)

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

相关问题