我正在尝试为大约90个人设置一个AWS实例,他们可以在其中 sftp
in和删除文件,但是看来AWS阻止了ssh
的密码,并且仅允许在ssh键登录中默认情况下。
是否有一种方法可以在AWS内部撤消此行为并允许正常的ssh
并因此发生sftp
吗?如果我不需要管理SSH键以及将很棒的用户名和密码。
you 可以按照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多个开发人员之间共享一个密码,该密码在某个时候会写在粘稠的纸条上并丢失,或者有人更改并锁定其他89开发人员。
这也具有优势,如果这90家开发人员中的一个离开公司,您所要做的就是从_authorized_keys_删除其公共密钥,而该人将失去对机器的访问,您将无需更改该用户共享密码。
首先打开几个终端会话,以防万一修改ssh config失败,您仍然可以选择将其还原为旧值。
编辑/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服务并继续调试。
关键部分是在服务器上修改/etc/etcss/ssh/sshd_config并重新启动SSH服务器(通常是" Service SSHD RESTART" - 注意,请注意是" SSHD",而不是" SSH",而不是" SSH"至少在红色帽子上(。
PasswordAuthentication yes
您也可能想运行
sshd -t
在运行" Service SSHD重新启动"之前,请确保您不会在SSHD_Config文件中意外锁定自己。
使用公共密钥进行身份验证可能更有意义,具体取决于您的情况。
如果您使用公共密钥身份验证并拥有50人,请确保您还正确管理钥匙。请参阅https://www.ssh.com/iam/ssh-key-management或NIST IR 7966更多信息。如果您碰巧在医疗保健,金融,政府,关键基础设施或其他受监管的事物中,大多数合规法规也需要适当终止对离开的人的钥匙。大多数法规和通常不良的安全惯例都明确禁止共享密码。
您可能还想查看加密审计师https://www.ssh.com/products/cryptoauditor/可以强制执行文件传输策略(方向等(需要,它可以记录谁做了什么(用于文件传输和shell访问(。