Amazon web services 将带有密码的ssh导入AWS EC2实例

Amazon web services 将带有密码的ssh导入AWS EC2实例,amazon-web-services,ssh,amazon-ec2,Amazon Web Services,Ssh,Amazon Ec2,我正在尝试为大约90人设置一个AWS实例,他们可以sftp进入并删除文件,但AWS似乎会阻止ssh的密码,默认情况下只允许ssh密钥登录 在AWS中是否存在撤销此行为的方法,并允许正常的ssh,从而发生sftp?如果我不需要管理ssh密钥以及用户名和密码,那就太好了。首先打开EC2机器的几个终端会话,以防修改ssh配置失败,您仍然可以选择将其恢复为旧值 编辑/etc/ssh/sshd_config(将备份文件保存到sshd_config.bak)并将以下行更改为: # Change to no

我正在尝试为大约90人设置一个AWS实例,他们可以
sftp
进入并删除文件,但AWS似乎会阻止
ssh
的密码,默认情况下只允许ssh密钥登录


在AWS中是否存在撤销此行为的方法,并允许正常的
ssh
,从而发生
sftp
?如果我不需要管理ssh密钥以及用户名和密码,那就太好了。

首先打开EC2机器的几个终端会话,以防修改ssh配置失败,您仍然可以选择将其恢复为旧值

编辑
/etc/ssh/sshd_config
(将备份文件保存到
sshd_config.bak
)并将以下行更改为:

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes
此外,如果要禁用基于密钥的身份验证,请执行以下操作:

PubkeyAuthentication no
保存文件并重新启动SSH守护程序:

sudo service ssh restart

创建一个新用户并设置密码,或者如果已经为现有用户设置了密码:打开一个新的SSH会话,您应该能够使用密码登录。如果解决方案不起作用,请使用任何其他打开的终端会话来还原旧的
sshd_config
,重新启动ssh服务并继续调试。

首先向EC2机器打开几个终端会话,如果修改ssh配置失败,您仍然可以选择将其还原为旧值

编辑
/etc/ssh/sshd_config
(将备份文件保存到
sshd_config.bak
)并将以下行更改为:

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes
此外,如果要禁用基于密钥的身份验证,请执行以下操作:

PubkeyAuthentication no
保存文件并重新启动SSH守护程序:

sudo service ssh restart
创建一个新用户并设置密码,或者如果已经为现有用户设置了密码:打开一个新的SSH会话,您应该能够使用密码登录。如果解决方案不起作用,请使用任何其他开放终端会话还原旧的
sshd\u config
,重新启动ssh服务并继续调试。

您可以根据helloV的建议启用密码验证,但我建议不要这样做

为什么不使用SSH密钥呢

这90个人中的每一个人都应该有他们自己每天使用的私钥文件——每个需要访问这台机器的人,你都应该要求获得他们的公钥

获取每个开发人员的公钥,并将它们逐行添加到EC2主机上位于的文件中

/home/<user>/.ssh/authorized_keys
/home/.ssh/authorized_key
从这里,每个用户都可以使用

ssh -i /path/to/private/key <user>@ec2.host.com
sftp -oIdentityFile=~/.ssh/keyfile <user>@ec2.host.com
ssh-i/path/to/private/key@ec2.host.com
sftp-oIdentityFile=~/.ssh/keyfile@ec2.host.com
这是更安全的,因为您不需要在90多名开发人员之间共享一个密码,该密码在某个时候会写在便笺上并丢失,或者有人更改并锁定其他89名开发人员

这也有好处,如果这90个开发者中有一个离开了公司,你所需要做的就是从“授权密钥”中删除他们的公钥,然后那个人就失去了对机器的访问权,您不需要更改所有用户的共享密码。

您可以按照helloV的建议启用密码验证,但我建议不要这样做

为什么不使用SSH密钥呢

这90个人中的每一个人都应该有他们自己每天使用的私钥文件——每个需要访问这台机器的人,你都应该要求获得他们的公钥

获取每个开发人员的公钥,并将它们逐行添加到EC2主机上位于的文件中

/home/<user>/.ssh/authorized_keys
/home/.ssh/authorized_key
从这里,每个用户都可以使用

ssh -i /path/to/private/key <user>@ec2.host.com
sftp -oIdentityFile=~/.ssh/keyfile <user>@ec2.host.com
ssh-i/path/to/private/key@ec2.host.com
sftp-oIdentityFile=~/.ssh/keyfile@ec2.host.com
这是更安全的,因为您不需要在90多名开发人员之间共享一个密码,该密码在某个时候会写在便笺上并丢失,或者有人更改并锁定其他89名开发人员


这也有好处,如果这90个开发者中有一个离开了公司,你所需要做的就是从“授权密钥”中删除他们的公钥,然后那个人就失去了对机器的访问权,您不需要更改所有用户的共享密码。

关键部分是修改服务器上的/etc/ssh/sshd_配置并重新启动ssh服务器(通常为“服务sshd restart”-注意至少在Red Hat上是“sshd”,而不是“ssh”)

你可能还想跑步

sshd -t
在运行“服务sshd restart”之前,请确保不会因sshd_配置文件中的输入错误而意外锁定自己

根据您的场景,使用公钥进行身份验证可能更有意义

如果您使用公钥身份验证,并且有大约50人,请确保您也正确管理密钥。更多信息,请参阅或NIST IR 7966。如果您恰好在医疗保健、金融、政府、关键基础设施或任何其他受监管的行业,那么大多数合规性法规也要求为离职人员正确终止密钥。大多数法规明确禁止共享密码,而且通常安全性较差


您可能还想看看CryptoAuditor,它可以强制执行文件传输策略(方向等),确保您不会在不需要的情况下意外地给人shell访问权限,并且它可以记录谁做了什么(对于文件传输和shell访问).

关键部分是修改服务器上的/etc/ssh/sshd_配置并重新启动ssh服务器(通常是“服务sshd restart”-注意至少在Red Hat上是“sshd”,而不是“ssh”)

你可能还想跑步

sshd -t
在运行“服务sshd restart”之前,请确保不会因sshd_配置文件中的输入错误而意外锁定自己

根据您的场景,使用公钥进行身份验证可能更有意义

如果你用p