2017-05-19 17 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中使用密鑰有什麼問題? –