2017-05-19 22 views
1

我想用下面的Java代码连接到EC2实例:何处获取连接到AWS EC2的JSch的用户名/密码?

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 
+0

请勿使用'StrictHostKeyChecking = no'。这样做你正在失去安全! –

回答

1

SSH/SFTP用户名亚马逊EC2是:

  • 对于亚马逊的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代码应该很容易。

+0

使用Jsch时,我必须使用ec2-key-pair(.pem文件)吗?没有办法连接只使用用户/密码? – Bruce

+0

这是最好的方法。但是,如果你想,你可以肯定地允许密码认证。首先,您必须首先使用密钥登录服务器,因为这是最初的唯一方法。无论如何,你在这里越来越偏离主题。这不再是一个编程问题。 –

+0

在JSch中使用密钥有什么问题? –