1:有没有不使用密钥对登录AWS实例的方法?我想在一个实例上设置几个站点/用户。但是,我不想提供密钥对供客户登录。
2:在不同域指向不同目录的 1 个 AWS 实例中设置托管站点/用户的最简单方法是什么?
1:有没有不使用密钥对登录AWS实例的方法?我想在一个实例上设置几个站点/用户。但是,我不想提供密钥对供客户登录。
2:在不同域指向不同目录的 1 个 AWS 实例中设置托管站点/用户的最简单方法是什么?
回答问题 1
这是我在 a 上所做的Ubuntu EC2
:
A) 使用密钥对以 root 身份登录
B)设置必要的用户及其密码
# sudo adduser USERNAME
# sudo passwd USERNAME
C) 编辑/etc/ssh/sshd_config
设置
PasswordAuthentication yes
PermitRootLogin yes
D) 重启ssh
守护进程
# sudo service ssh restart
如果您使用的是 centOS,只需将 ssh 更改为 sshd
ec2
现在您可以在没有密钥对的情况下登录您的实例。
我通过 Google 来到这里,寻找如何设置云初始化以不禁用 AWS 上的 PasswordAuthentication 的答案。两个答案都没有解决问题。如果没有它,如果您创建一个 AMI,那么在实例初始化时 cloud init 将再次禁用此选项。
正确的方法是,而不是手动更改 sshd_config,您需要更正 cloud init 的设置(用于在供应期间配置实例的开源工具。阅读更多信息:https ://cloudinit.readthedocs.org/en/最新/ )。cloud init 的配置文件位于:/etc/cloud/cloud.cfg
该文件用于设置 cloud init 使用的许多配置。通读此文件,了解您可以在 cloud-init 上配置的项目示例。这包括新创建实例上的默认用户名等项目)
要通过 SSH 启用或禁用密码登录,您需要更改参数 ssh_pwauth 的值。在文件 /etc/cloud/cloud.cfg 中将参数 ssh_pwauth 从 0 更改为 1 后,烘焙一个 AMI。如果您从这个新出炉的 AMI 启动,它将在配置后启用密码身份验证。
您可以通过检查 ssh 配置中 PasswordAuthentication 的值来确认这一点,如其他答案中所述。
1) 您应该能够更改 ssh 配置(在 Ubuntu 上,这通常位于/etc/ssh
or中/etc/sshd
)并重新启用密码登录。
2) 没有什么真正的 AWS 特定的 - Apache 可以处理开箱即用的 VHOSTS(虚拟主机) - 允许您指定从某个目录提供某个域。我会在谷歌上搜索更多关于细节的信息。
最近,AWS 在 Systems Manager 服务中添加了一项名为 Sessions Manager 的功能,该功能允许用户通过 SSH 连接到实例,而无需设置私钥或打开端口 22。我相信身份验证是通过 IAM 和可选的 MFA 完成的。
你可以在这里找到更多关于它的信息:
AWS 添加了一项新功能,即 AWS SSM 会话管理器,无需任何开放端口即可连接到实例。 https://aws.amazon.com/blogs/aws/new-session-manager/
我创建了一个简洁的 SSH ProxyCommand 脚本,在连接到目标实例期间临时将您的公共 ssh 密钥添加到目标实例。这样做的好处是您无需将 ssh(22) 端口添加到您的安全组即可进行连接,因为 ssh 连接是通过 ssm 会话管理器建立的隧道。
AWS SSM SSH ProxyComand -> https://gist.github.com/qoomon/fcf2c85194c55aee34b78ddcaa9e83a1
亚马逊补充道EC2 Instance Connect
。
有一个官方脚本可以自动化该过程https://pypi.org/project/ec2instanceconnectcli/
pip install ec2instanceconnectcli
然后就
mssh <instance id>
su - root
去/etc/ssh/sshd_config
vi sshd_config
PermitRootLogin yes
PermitEmptyPasswords no
PasswordAuthentication yes
:X!
然后重启ssh服务
root@cloudera2:/etc/ssh# service ssh restart
ssh stop/waiting
ssh start/running, process 10978
现在转到 sudoers 文件 (/etc/sudoers)。
root ALL=(ALL)NOPASSWD:ALL
yourinstanceuser ALL=(ALL)NOPASSWD:ALL / This is the user by which you are launching instance.