只允许从一个IP地址进行rootlogin

我有centos5。

有没有什么办法,我可以login到我的vps服务器与root用户从特定的IP地址只。

我读过,我可以使用私钥login到sshd。 但问题是我正在使用SFTP为我的所有Webistes,我不希望非IT用户使用密钥login与SFTP。

或者有没有什么办法,只有root可以使用密钥login到shell,但对于其他人而言,它的正常密码

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

Match Host myworkstation PermitRootLogin yes 

要么

 Match Address 192.168.1.100 PermitRootLogin yes 

这样,您可以将PermitRootLogin设置为“否”,但仍可以从工作站以root身份login。

例如,也可以使用这种方式来允许两台主机之间的root到rsync数据。

首先以非特权用户身份login,然后使用“su – ”或“sudo”来获得root权限通常是一种更好的做法,但是…

您始终可以将密钥的IP限制放在〜root / .ssh / authorized_keys中:

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

这将允许ssh使用[email protected]密钥只从192.168.1.100。

使用:

PermitRootLogin不带密码

在/ etc / ssh / sshd_config中。 除root之外的每个用户都将被允许使用密码login。 根需要使用密钥login。

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

  PermitRootLogin yes AllowUsers root@thehosttoallow 

然后重新启动守护进程

  service ssh restart 

首先,为什么要阻止用户使用密钥authentication? 这对我来说没有意义。

其次,不要允许通过ssh进行rootlogin。 只是不这样做 – 没有理由需要这样做。 这违背了每一个最好的做法,并有充分的理由。 如果您需要授予读取/写入某些文件的权限,则应该可以通过标准的linux文件系统权限来执行此操作。 如果您需要更细粒度的访问控制,请查看linux ACL系统。