EC2免pem用密码登陆

本文介绍了如何在AWS EC2实例启动时通过cloud-init脚本修改安全设置,启用PasswordAuthentication,以便使用密码直接登录。在实例创建的高级详细信息中配置相关设置,启动后即可用密码进行登陆。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原理

EC2在初始化实例时,会运行cloud-init脚本一次。

我们可以在cloud-init脚本中修改登陆的安全设置PasswordAuthentication

默认PasswordAuthentication是no

操作

在设置实例信息时,打开“高级详细信息

填入如下信息

#cloud-config
password: 《你要设置的登陆密码》
chpasswd: { expire: False }
ssh_pwauth: True

如图



登陆

在系统初始化完之后,可以直接使用

ssh ec2-user@你的实例的ip地址
就能登陆了。

中间会提示输入登陆密码

The authenticity of host 'ec2-xxx-xx-xxx-xxx.compute-1.amazonaws.com (xx.xx.x.xx<span style="font-family: Arial, Helvetica, sans-serif;">)
Jsch (Java Secure Channel) 是一个用于SSH连接的Java库,而EC2 (Elastic Compute Cloud) 是Amazon提供的一种云端服务器服务。要使用Pem (Private Key File,私钥文件) 通过JSch连接到EC2实例,你需要按照以下步骤操作: 1. **安装和依赖**: - 首先,在你的项目中添加JSch作为依赖,如果你使用Maven,可以在`pom.xml`中添加: ```xml <dependency> <groupId>com.jcraft</groupId> <artifactId>jssha</artifactId> <version>8.0</version> </dependency> ``` - 如果你是Java开发者,确保已经导入了这个库。 2. **加载Pem私钥**: 使用Java的FileInputStream读取Pem私钥文件,并创建一个PrivateKey对象: ```java FileInputStream pemStream = new FileInputStream("path/to/private-key.pem"); PrivateKey privateKey = JSch.parsePrivateKey(pemStream); ``` 3. **建立连接**: - 创建JSch对象并配置它: ```java JSch jsch = new JSch(); ``` - 使用`jsch.getSession()`创建一个会话,传入EC2实例的用户名、主机名和默认的端口(通常SSH为22): ```java Session session = jsch.getSession(user, host, 22); ``` 4. **身份验证**: 将私钥添加到会话,设置密码策略为无密码,然后启动会话: ```java session.setPassword(null); // 如果私钥不需要密码 session.setConfig("StrictHostKeyChecking", "no"); // 忽略主机密钥检查 try { session.connect(); } catch (Exception e) { e.printStackTrace(); } ``` 5. **执行命令或操作**: 现在你可以使用`session.execCommand()`或其他相关方法来执行远程命令或操作。 6. **清理资源**: 当完成操作后,记得关闭会话和文件流: ```java session.disconnect(); pemStream.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值