SSH到AWS实例,无密钥对

SSH到AWS实例,无密钥对,ssh,amazon-ec2,ssh-keys,Ssh,Amazon Ec2,Ssh Keys,1:有没有不使用密钥对登录AWS实例的方法?我想在一个实例上设置几个站点/用户。但是,我不想给客户端提供密钥对以供登录 2:在一个AWS实例中设置托管站点/用户的最简单方法是什么,不同的域指向不同的目录?1)您应该能够更改ssh配置(在Ubuntu上,这通常在/etc/ssh或/etc/sshd中),并重新启用密码登录 2) 关于这一点,AWS并没有什么特别之处——Apache可以直接处理vHost(虚拟主机)——允许您指定从某个目录服务某个域。我会在谷歌上搜索更多关于细节的信息。问题1的答案

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

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

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


2) 关于这一点,AWS并没有什么特别之处——Apache可以直接处理vHost(虚拟主机)——允许您指定从某个目录服务某个域。我会在谷歌上搜索更多关于细节的信息。

问题1的答案

下面是我在Ubuntu EC2上所做的:

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

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

# sudo adduser USERNAME
# sudo passwd USERNAME
C) 编辑
/etc/ssh/sshd\u config
设置

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

还希望root用户也不使用密钥登录
permitrotlogin是

D) 使用以下命令重新启动
ssh
守护程序

# sudo service ssh restart
如果您使用的是centOS,只需将ssh更改为sshd即可


现在,您可以不使用密钥对登录到
ec2
实例。

我是通过Google来到这里的,想知道如何设置cloud init以不禁用AWS上的密码验证。这两个答案都不能解决这个问题。如果没有它,如果您创建一个AMI,那么实例初始化cloud init将再次禁用此选项

要做到这一点,正确的方法不是手动更改sshd_config,而是更正cloud init(用于在配置期间配置实例的开放源代码工具)的设置。更多信息,请访问:。cloud init的配置文件位于: /etc/cloud/cloud.cfg

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

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

您可以通过检查ssh配置中密码身份验证的值来确认这一点,如其他答案中所述。

su-root

转到
/etc/ssh/sshd\u config

vi sshd\u配置

身份验证:
permitrotlogin是

要启用空密码,请更改为是(不推荐)
许可证密码否

更改为“否”以禁用隧道明文密码
PasswordAuthentication是

:x

然后重新启动ssh服务

root@cloudera2:/etc/ssh# service ssh restart
ssh stop/waiting
ssh start/running, process 10978
现在转到sudoers文件(/etc/sudoers)

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

您可以在此处了解更多信息:


AWS添加了一项新功能,即AWS SSM会话管理器,用于连接实例而无需任何打开的端口。

我创建了一个整洁的SSH ProxyCommand脚本,在连接到目标实例的过程中临时将您的公共SSH密钥添加到目标实例。这样做的好处是,您无需将ssh(22)端口添加到安全组即可进行连接,因为ssh连接是通过ssm会话管理器进行隧道连接的

亚马逊增加了AWS SSM SSH代理

有一个官方脚本来自动化这个过程

pip安装ec2instanceconnectcli

那就


mssh

在这些条件下(1个ip和多个VHOST),您仍然可以使用HTTPS吗?你知道一些文档解释了为所有域设置openSSL吗?所以我在问题中提到了这一点,但由于这是公认的答案,我想澄清一下。这个答案有一个AWS特定的部分。Cloud Init将作为启动的一部分运行,它将覆盖使用此方法设置的配置。这就是我的答案。谢谢,在AmazonAMI上,最后一个命令应该是:“sudo service sshd restart”谢谢。但是对于默认的
ec2用户
帐户,这仍然无法解决问题。嘿@シリウス, 这也适用于ec2用户。你只需要为它设置一个密码,然后很好地回答这个问题。我建议不要使用默认帐户,如ec2用户或ubuntu。在Ubuntu EC2上,“sudo service ssh restart”适合我。我怀疑这个答案暗示了正确的解决方案,但它写得太差了,我无法理解。我甚至不知道这个文件存在。回答得好@JimMaguire我猜我假设了很多背景信息。我还补充了一些澄清。这有用吗?你有什么特别的建议要我加入吗?如果你在/etc/cloud/cloud.cfg中找不到“PasswordAuthentication”,请在/etc/cloud/cloud.cfg.d/00_defaults.cfg中查找“ssh_pwath”,并将其值从“false”更改为“true”。现在在aws中可能是:@BMW,有一个官方的python包装器,它允许用户执行
mssh
root  ALL=(ALL)NOPASSWD:ALL
yourinstanceuser  ALL=(ALL)NOPASSWD:ALL    / This is the user by which you are launching instance.