首页 > 解决方案 > Ec2 实例登录问题 - Linux

问题描述

我已经使用我的 AMI 创建了一个实例(来自一个黄金 AMI——其中默认安装了 5 个卷——根据我认为的 cis 建议)。当我使用此 AMI 启动实例时,我看不到登录有任何问题,但没有安装驱动器。所以我在我的打包程序代码中定义了将这些卷附加在 launch_block_device_mappings 和 ami_block_device_mappings 下。现在我可以看到我自己的 AMI 连接了驱动器。

问题来了:当我在没有安装这些驱动器的情况下启动时,我的实例允许我登录但是当我在它下面运行时不允许我登录:

Error : Access Denied.

供应商下的打包程序代码:(刚刚创建了一个名为脚本的新目录并执行它 - 早些时候尝试从打包程序执行得到错误,因此尝试复制到实例并从那里执行)。

    {
         "type": "shell",
         "inline": [
            "sudo chmod u+x /scripts/mountpartitions.sh",
            "sudo sh /scripts/mountpartitions.sh",
            "sudo rm -rf /scripts"
         ],
        "execute_command": "{{ .Vars }} sudo -E -S sh '{{ .Path }}'"
    }

Mountshell 脚本:

#!/bin/bash

sudo mkfs.ext4 /dev/xvdj
echo '/dev/xvdj /tmp ext4 defaults 1 2' | sudo tee -a /etc/fstab
sudo mount /dev/xvdj /tmp

sudo mkdir -p /srv/home
sudo mkfs.ext4 /dev/xvdf
sudo mount /dev/xvdf /srv/home
sudo rsync -av /home/* /srv/home/
sudo rm -rf /home/*
sudo umount /srv/home
echo '/dev/xvdf /home ext4 defaults 1 2' | sudo tee -a /etc/fstab
sudo mount /dev/xvdf /home
sudo rm -rf /srv/home/

sudo mkfs.ext4 /dev/xvdh
echo '/dev/xvdh /var/log ext4 defaults 1 2' | sudo tee -a /etc/fstab
sudo mount /dev/xvdh /var/log

sudo mkfs.ext4 /dev/xvdi
sudo mkdir /var/log/audit
echo '/dev/xvdi /var/log/audit ext4 defaults 1 2' | sudo tee -a /etc/fstab
sudo mount /dev/xvdi /var/log/audit

sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' << EOF | fdisk /dev/xvdl
  o # clear the in memory partition table
  n # new partition
  p # primary partition
  1 # partition number 1
    # default - start at beginning of disk
    # default, extend partition to end of disk
  t # change a partition's system id
 82 # 82  Linux swap
  p # print the in-memory partition table
  w # write the partition table
  q # and we're done
EOF
echo '/dev/xvdl1 none swap sw 0 0' | sudo tee -a /etc/fstab
mkswap -L /dev/xvdl1 /dev/xvdl1
swapon -a

我尝试使用 AMI 手动构建实例并使用 pem 键登录以查看错误在哪里,我可以看到所有 sudoer 都可用。

还从用户数据而不是打包程序代码(来自未连接驱动器的 ami)尝试了如下脚本,但仍然相同。

已验证安全,消息日志仅显示在

Jul  9 01:39:38 sshd[10595]: input_userauth_request: invalid user  [preauth]
Jul  9 01:39:49 sshd[10595]: pam_sss(sshd:auth): authentication failure;

实例应该允许我通过 AD 身份验证登录。

为什么仅通过添加用于安装驱动器的脚本就会出错?

标签: linuxamazon-web-servicespacker

解决方案


发现我们缺少 sssd 的重启,因为我们只做 ssshd 解决了它。


推荐阅读