带密码的ssh到AWS EC2实例中

时间:2017-05-04 18:47:56

标签: amazon-web-services ssh amazon-ec2

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

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

3 个答案:

答案 0 :(得分:3)

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

为什么不只使用SSH密钥?

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

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

/home/<user>/.ssh/authorized_keys

从这里开始,每个用户都可以使用

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

这样更加安全,因为您不需要在90多个开发人员之间共享一个密码,该密码将在某个时刻写在便利贴上并丢失,或者有人更改并锁定其他密码。开发者。

这也有一个好处,如果这90个开发人员中的一个离开公司,你需要做的就是从_authorized_keys_中删除他们的公钥,并且那个人无法访问机器,你不需要改变所有用户的共享密码。

答案 1 :(得分: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服务并继续调试。

答案 2 :(得分:1)

关键部分是修改服务器上的/ etc / ssh / sshd_config并重新启动SSH服务器(通常&#34;服务sshd restart&#34; - 注意它是&#34; sshd&#34;,不是& #34; ssh&#34;至少在Red Hat上。)

PasswordAuthentication yes

您可能还想运行

sshd -t

在运行&#34; service sshd restart&#34;之前,确保您不会因为sshd_config文件中的拼写错误而将自己锁定。

使用公钥进行身份验证可能更有意义,具体取决于您的方案。

如果您使用公钥身份验证并且有50个人,请确保您也正确管理密钥。请参阅https://www.ssh.com/iam/ssh-key-management或NIST IR 7966更多信息。如果您恰好在医疗保健,财务,政府,关键基础设施或其他任何受监管的环境中,大多数合规性法规也要求正确终止关键人员。大多数法规明确禁止共享密码,并且通常是不良的安全措施。

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