2017-05-04 149 views
0

我试图为大约90个人设置一个AWS实例,他们可以在sftp中放入文件,但似乎AWS阻止了ssh的密码,并且只允许在ssh密钥登录中默认。带密码的ssh到AWS EC2实例

是否存在解决AWS内部此行为的方法,并允许正常发生ssh并因此发生sftp?如果我不需要管理ssh密钥以及很好的用户名和密码。

+0

Linux实例? – helloV

+0

是的。 Ubuntu 16.04。 –

回答

2

首先打开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服务并继续调试。

+0

这正是我所期待的。我试了一下,它就像我需要的那样工作。谢谢! –

3

可以启用密码认证以下helloV的建议,但我会建议这个。

为什么你不只是使用SSH密钥?

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

以每个开发者的公钥,并线,在

/home/<user>/.ssh/authorized_keys 

从这里添加它们,行至EC2主机上的文件,每个用户将可以使用登录

ssh -i /path/to/private/key <user>@ec2.host.com 
sftp -oIdentityFile=~/.ssh/keyfile <user>@ec2.host.com 

这样做更安全得多,因为您不需要在90多位开发人员之间共享单个密码,该密码在某些时候会写在便笺上并丢失,或者有人更改并锁定其他89位开发人员。

这样做的好处还在于,如果这90位开发人员中的单个人离开公司,您只需从_authorized_keys_中删除他们的公钥并且该人员无法访问机器,则您不需要更改所有用户的共享密码。

1

关键部分是修改服务器上的/ etc/ssh/sshd_config并重新启动SSH服务器(通常是“service sshd restart” - 注意它是“sshd”,而不是“Red Hat”中的“ssh”)。

PasswordAuthentication yes 

您可能还需要运行

sshd -t 

运行“服务的sshd重新启动”前,要确保你不小心将自己锁定在sshd_config文件中一个错字。

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

如果您使用公共密钥身份验证并拥有类似50人的任何内容,请确保您也正确管理密钥。请参阅https://www.ssh.com/iam/ssh-key-management或NIST IR 7966的更多信息。如果您碰巧在医疗保健,财务,政府,关键基础设施或任何其他受监管的情况下,适当的终止钥匙适用于大多数合规条例。大多数法规明确禁止使用共享密码,通常安全做法不好。

您可能还想看看CryptoAuditor https://www.ssh.com/products/cryptoauditor/,它可以强制执行文件传输策略(方向等),确保您不会在不需要时给人们shell访问权限,并且可以记录谁做了什么文件传输和shell访问)。