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


14

我有centos5。

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

我已经读过我可以使用私钥登录sshd。但是问题是我正在为所有网站管理员使用SFTP,并且我不希望非IT用户使用密钥登录SFTP。

或有什么方法,只有root可以使用密钥登录shell,而对于其他用户,则可以使用常规密码登录

centos  root  ssh 

Answers:


15

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

Match Host myworkstation
        PermitRootLogin yes

要么

Match Address 192.168.1.100
        PermitRootLogin yes

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

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


您的rsync示例恰好是我用这个问题搜索过的用例。谢谢!;)
1

请注意,这仅适用于源IP地址的反向DNS。(至少对我来说这是唯一的方法)
mveroone

9

通常,更好的做法是先以非特权用户身份登录,然后使用'su-'或'sudo'获得root特权,但是...

您总是可以在〜root / .ssh / authorized_keys中对密钥进行IP限制:

from="192.168.1.100" ssh-rsa AAAAh9uif...auwehuf== yourkey@yourhost.com

这将允许ssh仅使用来自192.168.1.100的yourkey@yourhost.com密钥。


同意,尽管对于sftp,rsync,sshfs等而言,这样做更复杂...
mveroone

3

采用:

允许RootLogin无密码

在/ etc / ssh / sshd_config中。除root用户外,每个用户都可以使用密码登录。根需要使用密钥登录。


这个解决方案会起作用吗?您是否尝试过

我在维护的每台服务器中都使用该设置。它可以防止root暴力/ dict攻击。unixhelp.ed.ac.uk/CGI/man-cgi?sshd_config+5
rubiojr 2010年

但是,这似乎可以解决git pull:/ etc / ssh / ssh_config:第68行:错误的配置选项:allowrootlogin
geoidesic

另外PermitRootLogin也没有出现在man ssh_config
geoidesic '17

也很容易与重写ssh -o PreferredAuthentications=password
geoidesic

2

编辑sshd_config(通常在中/etc/ssh),然后添加或更改以下指令

  PermitRootLogin yes
  AllowUsers root@thehosttoallow

然后重新启动守护程序

  service ssh restart

我相信,如果OP想要使用AllowUsers,他将需要指定他想要访问的所有用户。您的示例仅允许root通过ssh进行身份验证。
EEAA 2010年

1
是的,这是故意的。要允许任何用户*@thehosttoallow进入,确实允许任何用户进入。
ØØ10年

也很容易被覆盖ssh -o PreferredAuthentications=password
geoidesic '18

0

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

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


如果我禁用root登录并且任何用户都没有访问某些主配置文件该怎么办。然后我被锁定,因为我无法通过root登录

1
当您通过ssh禁用root登录时,root仍然能够通过控制台登录。另外,您始终可以选择通过sudo授予普通用户root-esque权限。这不适用于sftp,但作为故障回复,以防万一您需要修复,它会很好地工作,并且是授予权限的首选方式。
EEAA 2010年

1
@ErikA root唯一主机允许并不安全。有反对的一种趋势root通过访问telnet在几年前(besore ssh很常见),但允许root通过ssh只有一台主机不看不安全。
环Ø

当然,这也许是“安全的”,但我仍然会认为这是一个糟糕的主意。我之所以这样说,主要是因为,当人们获得一种简单的方法来获得root访问权限时,他们会使用它,而不是使用一种更安全,更合适的方法来获得访问权限(sudo)。
EEAA 2010年

2
考虑到作者的问题,可以假设他想通过root用户执行管理任务。root在这种情况下,仅允许一台主机直接访问是一种合理的选择。
环Ø
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.