1

現在、リスニングポートとの接続を確立するのを待機しているServer.javaスクリプトがあります。現在、Amazonインスタンスで実行されています。

ローカルで実行されているサーバーにデータを送信しようとしているClient.javaファイルもあります。

現在の問題は(Amazonクラウドについて知っている場合はこれを知っています)、AmazonUbuntuインスタンスは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");
        }
    }
}
4

1 に答える 1

2

あなたが混乱しています。TCPソケットはsshとは何の関係もありません(sshがTCPソケットを使用することを除いて)。SSHにはRSAキーが必要です。プレーンなTCPソケットを開いているだけです。キーやその他の認証機能は適用されません。あなたがする必要があるのは、EC2インスタンスで自動的に実行されているファイアウォールを通過するポート番号を許可することです。

于 2012-10-31T03:54:15.727 に答える