从哪里获取连接到AWS EC2的JSch的用户名/密码?

时间:2017-05-19 21:29:00

标签: java ssh amazon-ec2 sftp jsch

我正在尝试使用以下Java代码连接到EC2实例:

Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
Session session = jSch.getSession(username, EC2-IP, 22);
session.setPassword(password);
session.setConfig(config);
session.connect();

在EC2 IAM Web控制台中,我创建了一个用户/密码,我可以使用它来登录AWS管理控制台。但是当我在上面的Java代码中使用这个用户/密码时,我会收到:

Error: com.jcraft.jsch.JSchException: Auth fail

1 个答案:

答案 0 :(得分:1)

Amazon EC2的SSH / SFTP用户名是:

  • 对于Amazon Linux AMI,用户名为ec2-user

  • 对于RHEL AMI,用户名为ec2-userroot

  • 对于Ubuntu AMI,用户名为ubunturoot

  • 对于Centos AMI,用户名为centos

  • 对于Fedora AMI,用户名为ec2-user

  • 对于SUSE,用户名为ec2-userroot

请参阅https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html

要进行身份验证,请在创建实例时使用与实例关联的私钥。

请参阅https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html

通常,您应首先设置并测试与某个独立SFTP / SSH客户端的连接。然后才尝试连接您的代码。

我为connecting to Amazon EC2 with WinSCP SFTP client撰写了一份指南。如果您遵循它并与WinSCP成功建立连接,那么使用JSch代码应该很容易做到这一点。