Ensure sshd PermitRootLogin is disabled
Scanned 5/30/2026
Install via CLI
openskills install CyberStrikeus/CyberStrike---
name: cis-ubuntu2004-v300-5-1-20
description: "Ensure sshd PermitRootLogin is disabled"
category: cis-networking
version: "3.0.0"
author: cyberstrike-official
tags: [cis, ubuntu, linux, ubuntu-20.04, ssh]
cis_id: "5.1.20"
cis_benchmark: "CIS Ubuntu Linux 20.04 LTS Benchmark v3.0.0"
tech_stack: [ubuntu, linux]
cwe_ids: []
chains_with: []
prerequisites: []
severity_boost: {}
---
# Ensure sshd PermitRootLogin is disabled (Automated)
## Profile Applicability
- Level 1 - Server
- Level 1 - Workstation
## Description
The `PermitRootLogin` parameter specifies if the root user can log in using SSH. The default is `prohibit-password`.
## Rationale
Disallowing `root` logins over SSH requires system admins to authenticate using their own individual account, then escalating to `root`. This limits opportunity for non-repudiation and provides a clear audit trail in the event of a security incident.
## Audit Procedure
### Command Line
Run the following command to verify `PermitRootLogin` is set to `no`:
```bash
# sshd -T | grep permitrootlogin
```
```
permitrootlogin no
```
- IF - `Match` set statements are used in your environment, specify the connection parameters to use for the `-T` extended test mode and run the audit to verify the setting is not incorrectly configured in a match block.
Example additional audit needed for a match block for the user _sshuser_:
```bash
# sshd -T -C user=sshuser | grep permitrootlogin
```
Note: If provided, any Match directives in the configuration file that would apply are applied before the configuration is written to standard output. The connection parameters are supplied as keyword=value pairs and may be supplied in any order, either with multiple `-C` options or as a comma-separated list. The keywords are `addr` (source address), `user` (user), `host` (resolved source host name), `laddr` (local address), `lport` (local port number), and `rdomain` (routing domain)
## Expected Result
```
permitrootlogin no
```
## Remediation
### Command Line
Edit the `/etc/ssh/sshd_config` file to set the `PermitRootLogin` parameter to `no` above any `Include` and `Match` entries as follows:
```
PermitRootLogin no
```
Note: First occurrence of an option takes precedence, `Match` set statements withstanding. If `Include` locations are enabled, used, and order of precedence is understood in your environment, the entry may be created in a file in `Include` location.
## Default Value
PermitRootLogin without-password
## References
1. SSHD_CONFIG(5)
2. NIST SP 800-53 Rev. 5:AC-6
## CIS Controls
v8 - 5.4 Restrict Administrator Privileges to Dedicated Administrator Accounts
Restrict administrator privileges to dedicated administrator accounts on enterprise assets. Conduct general computing activities, such as internet browsing, email, and productivity suite use, from the user's primary, non-privileged account.
v7 - 4.3 Ensure the Use of Dedicated Administrative Accounts
Ensure that all users with administrative account access use a dedicated or secondary account for elevated activities. This account should only be used for administrative activities and not internet browsing, email, or similar activities.
MITRE ATT&CK Mappings: T1021 | TA0008 | M1042
No comments yet. Be the first to comment!