我有一个 Amazon ec2 实例,好奇我是否应该更改用户名(默认是ubuntu
)?
由于您需要一个公共 SSH 密钥才能访问服务器,我认为您不需要,但事实仍然存在 - 我应该更改该服务器的用户名吗?
答案1
除非您已在服务器上禁用用户/密码身份验证,否则我建议更改它。从安全角度来看,拥有一个身份验证组件将使它更容易。
设置 SSH 密钥认证
User@Host:~$ ssh-keygen -t rsa -b 4096
生成密钥后,您需要执行以下操作:
User@Host:~$ ssh-copy-id <username>@<host>
然后,您将需要在禁用密码验证之前验证密钥是否有效。
User@Host:~$ ssh <username>@<host>
系统应提示您输入创建密钥时设置的密码。如果您输入了密码并连接到服务器,您现在可以禁用密码验证。
/etc/ssh/sshd_config
通过更改以下行来修改您的:
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
此后你需要重新加载 SSH 服务器
User@Host:~$ /etc/init.d/ssh reload
答案2
如前所述,从安全角度来看,从“默认”转移几乎总是一个好主意。将用户名从 ubuntu 更改为其他用户名可能会阻止未经授权的访问。但是,每个系统都有一个“root”帐户,以此为例,您可以为您的机器/用户提供其他安全措施。
- 确保 root 登录已被禁用。
- 防止计算机上的用户使用密码登录。(这在目标用户名已知的情况下尤其重要)
- 安装一种禁止暴力登录尝试的方法(失败2ban是一个不错的选择)
- 更改您的服务器端口号。
- 白名单比黑名单好。如果你能告诉你的 SSH 服务器哪些 IP 可以连接,你就能大大减少攻击。(这可能很复杂,而且将来会造成问题,所以如果你走到这一步,请阅读并做好准备)