我有一台 Linux 服务器 (Ubuntu 14),我使用 root 和SSH keys
(即没有 root 密码) 访问它。我还创建了一个具有权限的non-root-user
(和相应的non-root-user's-password
) sudo
。
我的网络主机建议出于安全原因禁用root,然后sudo
在需要时使用。
有两个问题我正在努力解决:
如果我禁用 root,那么我很确定我将无法使用
SSH
root 用户 (root@ip-address
) 进入我的服务器,因此我将使用non-root-user
和non-root-user's-password
。但这似乎不安全,因为有人可能会在网络上监听并窃取用户名和密码。如果我禁用 root,然后使用
sudo
中的命令non-root-user
,服务器将如何验证我是否被允许具有 root 访问权限?它会使用 来SSH keys
执行此操作吗?
更新:我一直都认为这是错的。有人刚刚提醒我,当使用 时sudo
,系统会要求输入non-root-user's-password
,而不是root
密码。所以答案很明显。
答案1
禁用 SSH 根登录的目的是要求您输入两个密码才能远程成为根用户 - 一个来自具有 SSH 访问权限的标准用户,然后从该帐户输入根密码。这可以防止攻击者远程猜测根密码 - 他们必须猜测两个密码才能远程获得根权限。
但这似乎并不安全,因为有人可能会监听网络并窃取用户名和密码。
SSH 中的“S”表示安全的- 只要你使用 SSHv2 和强密码(检查你的sshd_config
-https://stribika.github.io/2015/01/04/secure-secure-shell.html- 如果担心的话)没有人能嗅到任何东西除非你的密钥已被泄露。
sshd
当您使用 - 登录时检查您的密码,sshd
此后您执行的命令将不受sshd
- 包括sudo
、su
等的检查。