2011-05-25 132 views
42

1:有没有方法可以在不使用密钥对的情况下登录AWS实例?我想在单个实例上建立几个站点/用户。但是,我不想为客户端登录密钥对。无密钥对的SSH到AWS实例

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

回答

18

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

2)AWS没有具体说明这个问题 - Apache可以直接处理VHOSTS(虚拟主机) - 允许您指定从某个目录提供某个域。我想Google了解更多关于细节的信息。

+0

你还能使用HTTPS这些条件(1个IP和多虚拟主机)下?你知道解释为所有域设置openSSL的文档吗? – Andres 2011-05-25 16:23:15

+0

所以我在我的问题中解决了这个问题,但是因为这是我想澄清的公认答案。这个答案有一个AWS特定组件。 Cloud Init将作为启动的一部分运行,将覆盖您使用此方法设置的配置。这就是我的答案所解决的问题。 – 2016-04-19 19:38:07

107

回答问题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 

现在你可以杜松子酒加入你的ec2没有密钥对的实例。

+6

谢谢,并在亚马逊AMI上,最后一个命令应该是:“sudo service sshd restart” – Suman 2012-04-11 22:06:53

+6

对我来说这工作“sudo服务ssh重启” – Prabhat 2014-01-12 04:34:29

+0

谢谢。但是这仍然不能解决默认的'ec2-user'帐户。 – 2014-01-29 10:10:21

13

我通过Google来到这里,寻找如何设置云初始化以禁用AWS上的PasswordAuthentication的答案。这两个答案都没有解决这个问题。没有它,如果你创建一个AMI,那么在实例初始化的时候,云初始化会再次禁用这个选项。

执行此操作的正确方法是,不是手动更改sshd_config,而是需要更正cloud init的设置(用于在配置期间配置实例的开放源代码工具。更多信息请登录:https://cloudinit.readthedocs.org/en/latest/)。 cloud init的配置文件位于: /etc/cloud/cloud.cfg

此文件用于设置云init使用的许多配置。通读这个文件,查看您可以在cloud-init上配置的项目的示例。这包括诸如新创建的实例上的默认用户名等项目)

要启用或禁用SSH上的密码登录,您需要更改参数ssh_pwauth的值。在文件/etc/cloud/cloud.cfg中将参数ssh_pwauth从0更改为1后,烘烤AMI。如果从此新烘焙的AMI启动,它将在设置后启用密码验证。

您可以通过检查其他答案中提到的ssh config中PasswordAuthentication的值来确认。

+0

我怀疑这个答案暗示正确的解决方案,但它写得很差,我不明白它。 – 2015-11-13 02:07:02

+0

我甚至不知道这个文件存在。很好的答案! – 2015-11-17 18:35:27

+1

@JimMaguire我想我假设了很多背景资料。我已经添加了一些更多的说明。这有帮助吗?你有什么特别的建议,你希望我加入? – 2015-11-19 08:53:39

0

su - root

转到/etc/ssh/sshd_config

vi sshd_config

认证:

PermitRootLogin yes

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

PermitEmptyPasswords no

更改为no禁用隧道明文密码

PasswordAuthentication yes

:X!

然后重启ssh服务

[email protected]:/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.