1

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

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

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

对于 SSH,我必须这样做,即:ssh -i key.pem root@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");
        }
    }
}
4

1 回答 1

2

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

于 2012-10-31T03:54:15.727 回答