如何从服务器以root用户身份禁用远程SSH登录?


54

为了安全起见,我公司希望我禁止任何人通过SSH以root身份远程登录到我们的Ubuntu服务器。我们仍然希望根帐户存在,只是我们不希望它能够远程登录。我将如何完成?

非常感谢您抽出宝贵的时间。

Answers:


85

我以为您是说要通过SSH登录?将以下行添加到/etc/ssh/sshd_config

PermitRootLogin no

如果要拒绝某些用户登录,请将其放在配置文件中:

DenyUsers root

这采用了黑名单方法。白名单通常是可取的。如果您的公司需要允许robadmin用户登录服务器,请使用以下配置指令:

AllowUsers rob admin

更改配置文件后,使用以下命令重新启动ssh服务:

sudo service ssh restart

另请参见手册页


14
sudo service ssh restart生效
Maxim Yefremov 2014年

我没有看到sshd_config文件,我看到了这个/ etc / ssh / ssh_config文件。
Chinmaya B

@ChinmayaB您可能尚未安装OpenSSH服务器。试试sudo apt-get install openssh-server
Lekensteyn

14

编辑文件/etc/ssh/sshd_config,寻找

PermitRootLogin

并将其设置为no


如果您在不添加任何用户的情况下执行此操作,AllowUsers <username>这实际上将不允许任何人通过SSH进入吗?
JGlass

1
@JGlass您可能将此答案与上面具有其他选项的答案混为一谈-此特定行仅禁止root用户通过SSH登录。如果系统上还有其他用户,在其他所有条件相同的情况下,除非您也使用DenyUsers这些登录名,否则他们仍然可以通过SSH 登录。
armadadrive

@armadadrive-啊,谢谢您的纠正和解释!
JGlass

5

默认配置是锁定root帐户,因此您不能以root身份远程登录。您无需执行任何其他操作,除非您还想确保您无法使用RSA密钥以root用户身份远程登录。当然,如果您不想这样做,那就不要设置根密钥。


1
这不是我的Linode Ubuntu 14.04计算机的默认设置。PermitRootLogin设置为yes,没有AllowUsersDenyUsers配置行。除非我丢失了某些内容,否则我认为假定它默认
处于

@andrewtweber,不是通过ssh config禁止root登录,而是通过将root密码设置为您无法输入的无效值来在系统范围内登录。因此,正如我所说,您仍然可以使用RSA密钥以root身份ssh,而无需输入密码。
psusi

好的,谢谢,您可以在解释中添加解释吗,然后我就可以删除我的
不赞成意见

@andrewtweber,已经在我的答案中了
。– psusi

您对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.