仅允许从一个 IP 地址登录 root

仅允许从一个 IP 地址登录 root

我有centos5。

有什么办法可以让我仅从特定 IP 地址以 root 用户身份登录到我的 vps 服务器。

我读到过我可以使用私钥登录 sshd。但问题是我所有的网站都使用 SFTP,我不希望非 IT 用户使用密钥登录 SFTP。

或者有没有办法只有 root 可以使用密钥登录到 shell,而其他人可以使用普通密码

答案1

现在更好的方法是使用 Match 关键字:

Match Host myworkstation
        PermitRootLogin yes

或者

Match Address 192.168.1.100
        PermitRootLogin yes

这样,您可以将 PermitRootLogin 设置为“no”,但您仍然可以从工作站以 root 身份登录。

例如,这也可以用于允许 root 在两个主机之间 rsync 数据。

答案2

一般来说,更好的做法是先以非特权用户身份登录,然后使用“su -”或“sudo”来获取 root 权限,但是......

您始终可以在 ~root/.ssh/authorized_keys 中对密钥设置 IP 限制:

from="192.168.1.100" ssh-rsa AAAAh9uif...auwehuf== [email protected]

这将允许 ssh 使用[电子邮件保护]仅来自 192.168.1.100 的密钥。

答案3

使用:

允许无密码登录

在 /etc/ssh/sshd_config 中。除 root 之外的每个用户都将被允许使用密码登录。Root 需要使用密钥才能登录。

答案4

首先,为什么要阻止用户使用密钥认证?这对我来说毫无意义。

其次,不要允许 root 通过 ssh 登录。不要这样做 - 没有充分的理由这样做。这违背了现有的所有最佳实践,而且有充分的理由。如果您需要授予读取/写入某些文件的权限,您应该能够通过标准 linux 文件系统权限来执行此操作。如果您需要更细粒度的访问控制,请查看 linux ACL 系统。

相关内容