我有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 系统。