52

1:有没有不使用密钥对登录AWS实例的方法?我想在一个实例上设置几个站点/用户。但是,我不想提供密钥对供客户登录。

2:在不同域指向不同目录的 1 个 AWS 实例中设置托管站点/用户的最简单方法是什么?

4

7 回答 7

139

回答问题 1

这是我在 a 上所做的Ubuntu EC2

A) 使用密钥对以 root 身份登录

B)设置必要的用户及其密码

# sudo adduser USERNAME
# sudo passwd USERNAME

C) 编辑/etc/ssh/sshd_config设置

让有效用户无需密钥即可登录

PasswordAuthentication yes

也希望root也无需密钥登录

PermitRootLogin yes

D) 重启ssh守护进程

# sudo service ssh restart

如果您使用的是 centOS,只需将 ssh 更改为 sshd

ec2现在您可以在没有密钥对的情况下登录您的实例。

于 2011-10-08T11:20:26.357 回答
15

我通过 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 的值来确认这一点,如其他答案中所述。

于 2015-01-22T02:21:54.053 回答
15

1) 您应该能够更改 ssh 配置(在 Ubuntu 上,这通常位于/etc/sshor中/etc/sshd)并重新启用密码登录。

2) 没有什么真正的 AWS 特定的 - Apache 可以处理开箱即用的 VHOSTS(虚拟主机) - 允许您指定从某个目录提供某个域。我会在谷歌上搜索更多关于细节的信息。

于 2011-05-25T05:08:52.360 回答
2

最近,AWS 在 Systems Manager 服务中添加了一项名为 Sessions Manager 的功能,该功能允许用户通过 SSH 连接到实例,而无需设置私钥或打开端口 22。我相信身份验证是通过 IAM 和可选的 MFA 完成的。

你可以在这里找到更多关于它的信息:

https://aws.amazon.com/blogs/aws/new-session-manager/

于 2019-08-16T19:38:52.040 回答
0

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

于 2019-08-25T06:08:03.817 回答
0

亚马逊补充道EC2 Instance Connect

有一个官方脚本可以自动化该过程https://pypi.org/project/ec2instanceconnectcli/

pip install ec2instanceconnectcli

然后就

mssh <instance id>

于 2021-03-30T11:53:31.850 回答
0

su - root

/etc/ssh/sshd_config

vi sshd_config

验证:

PermitRootLogin yes

要启用空密码,请更改为 yes(不推荐)

PermitEmptyPasswords no

更改为 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.
于 2017-12-11T06:58:05.113 回答