没有密钥对的SSH到AWS实例

时间:2011-05-25 05:04:38

标签: ssh amazon-ec2 ssh-keys

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

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

7 个答案:

答案 0 :(得分:122)

回答问题1

以下是我在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实例。

答案 1 :(得分:19)

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

2)没有任何关于此的AWS特定内容--Apache可以开箱即用地处理VHOSTS(虚拟主机) - 允许您指定从某个目录提供某个域。我想谷歌了解有关具体细节的更多信息。

答案 2 :(得分:13)

我来到谷歌寻找如何设置cloud init以不在AWS上禁用PasswordAuthentication的答案。答案都没有解决问题。没有它,如果你创建一个AMI,那么在实例初始化时,cloud init将再次禁用此选项。

执行此操作的正确方法是,不需要手动更改sshd_config,而是需要更正cloud init的设置(用于在配置期间配置实例的开源工具。请参阅:https://cloudinit.readthedocs.org/en/latest/)。 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的值来确认这一点,如其他答案中所述。

答案 3 :(得分:1)

su - root

转到/etc/ssh/sshd_config

vi sshd_config

验证:

PermitRootLogin yes

要启用空密码,请更改为yes(NOT RECOMMENDED)

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.

答案 4 :(得分:1)

最近,AWS在Systems Manager服务中添加了一个称为Sessions Manager的功能,该功能允许用户通过SSH进入实例而无需设置私钥或打开端口22。我相信可以使用IAM和可选的MFA进行身份验证。 / p>

您可以在此处找到更多相关信息:

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

答案 5 :(得分: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

答案 6 :(得分:0)

亚马逊添加了EC2 Instance Connect

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

pip install ec2instanceconnectcli

然后就是

mssh <instance id>