mne*_*rco 10 ssh amazon amazon-ec2 ubuntu-12.04
我在EC2 ubuntu服务器12.04实例中激活了ufw防火墙,但我忘了允许访问端口22.现在我无法通过ssh连接到实例.此实例是EBS支持的.
Ibr*_*sim 11
步骤 1:在实例设置中打开查看/更改用户数据。
第 2 步:添加脚本(如下所述)并保存。
#cloud-config
bootcmd:
- cloud-init-per always fix_broken_ufw_1 sh -xc "/usr/sbin/service ufw stop >> /var/tmp/svc_$INSTANCE_ID 2>&1 || true"
- cloud-init-per always fix_broken_ufw_2 sh -xc "/usr/sbin/ufw disable>> /var/tmp/ufw_$INSTANCE_ID 2>&1 || true"
Run Code Online (Sandbox Code Playgroud)
第 3 步:重启实例:(机器 ip 将被更改)脚本将在启动时执行,ufw 将被禁用。
现在我们可以通过 ssh 连接实例。
参考(一步一步截图):https : //github.com/ibrahim45/configuration/blob/master/boot_script_instance.md
另一种方法,超级简单:最简单的方法是更新实例的用户数据
停止您的实例
在实例上右键单击 (Windows) 或 Ctrl + 单击 (Mac) 打开上下文菜单,然后转至实例设置 -> 编辑用户数据,或选择实例并转至操作 -> 实例设置 -> 编辑用户数据
如果您仍在旧的 AWS 控制台上,请选择实例,转至操作 -> 实例设置 -> 查看/更改用户数据
并粘贴这个
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
ufw disable
iptables -L
iptables -F
--//
Run Code Online (Sandbox Code Playgroud)
添加后,重新启动实例,ssh 应该可以工作。userdata 会禁用 ufw(如果已启用),并且还会刷新任何阻止 ssh 访问的 iptable 规则