【问题标题】:Connecting to and AWS EC2 instance using SSHJ使用 SSHJ 连接到 AWS EC2 实例
【发布时间】:2012-11-23 04:45:30
【问题描述】:

我有很多问题。

我有以下代码

            try {
        final SSHClient ssh = new SSHClient();
        PKCS8KeyFile keyFile = new PKCS8KeyFile();
        keyFile.init(new File(Thread.currentThread().getContextClassLoader().getResource("development.pem").toURI()));
        ssh.loadKnownHosts();
        ssh.addHostKeyVerifier("ec2-XX-XX-XX-XX.compute-1.amazonaws.com", 22, "ff:59:aa:24:42:b1:a0:9f:c9:4c:73:34:fb:95:53:c2:b8:37:a8:f8");
//      ssh.addHostKeyVerifier("ec2-XX-XX-XX-XX.compute-1.amazonaws.com", 22, "90:1e:4d:09:42:c4:16:8a:4c:dc:ae:c2:60:14:f9:ea");
        ssh.connect("ec2-XX-XX-XX-XX.compute-1.amazonaws.com");
        ssh.auth("ec2-user", new AuthPublickey(keyFile));
        Session session = ssh.startSession();
        Command sudo = session.exec("sudo su -");
        System.out.println("sudo=" +sudo.getOutputAsString());
        Command whoami = session.exec("whoami");
        System.out.println("whoami=" + whoami.getOutputAsString());
        } catch (Exception e) {
            e.printStackTrace();
        }

第一个 addHostKeyVerifier 正在使用 AWS 控制台上的指纹,注释掉的那个是它一直告诉我它失败的那个。我打算从哪里获得正确的密钥。

如果我使用第二个密钥,它会通过验证然后失败。

我使用的是 SSHJ 版本 0.8.1

【问题讨论】:

  • 您是否尝试设置弹性IP?我在尝试连接到类似主机名时遇到了一些稍微不同的代码问题,但是一旦我将弹性 IP 设置到 EC2 实例,我就能够进行 SSH 连接。
  • 不,我希望能够连接到我的任何服务器。我最终放弃了 sshj 并改为了 mindterm,我在大约 15 分钟内启动并运行了它。
  • 我在这里回答了一个类似的问题,可能有用stackoverflow.com/a/15800383/311525

标签: java amazon-ec2 sshj


【解决方案1】:

这对我有用。

对于您的 PEM 文件,您需要使用 OpenSSHKeyFile 密钥提供程序。

  SSHClient ssh = new SSHClient();
  OpenSSHKeyFile keyFile = new OpenSSHKeyFile();
  File file = new File("c:\\full\\path\\to\\keyfile.pem");
  keyFile.init(file);

就个人而言,我只是取消了主机密钥验证以始终返回true。但我相信你的方式更安全(如果可行的话)。

  ssh.loadKnownHosts();
  ssh.addHostKeyVerifier((a, b, c) -> true);

AWS 的用户名取决于您的图像。很多时候它是“根”。就我而言,它是“ubuntu”。

  ssh.connect("ec2-54-165-233-48.compute-1.amazonaws.com");
  ssh.auth("ubuntu", new AuthPublickey(keyFile));
  Session session = ssh.startSession();

(注意:我使用的是 0.26.0 版本。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-03
    • 2014-05-23
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 2018-01-03
    • 2016-08-24
    • 1970-01-01
    相关资源
    最近更新 更多