The ESXi host Secure Shell (SSH) daemon must not allow host-based authentication.
Severity | Group ID | Group Title | Version | Rule ID | Date | STIG Version |
|---|---|---|---|---|---|---|
| medium | V-258761 | SRG-OS-000480-VMM-002000 | ESXI-80-000202 | SV-258761r933344_rule | 2023-10-11 | 1 |
Description
SSH trust relationships mean a compromise on one host can allow an attacker to move trivially to other hosts. SSH's cryptographic host-based authentication is more secure than ".rhosts" authentication since hosts are cryptographically authenticated. However, it is not recommended that hosts unilaterally trust one another, even within an organization.
ℹ️ Check
From an ESXi shell, run the following command:
# esxcli system ssh server config list -k hostbasedauthentication
or
From a PowerCLI command prompt while connected to the ESXi host, run the following commands:
$esxcli = Get-EsxCli -v2
$esxcli.system.ssh.server.config.list.invoke() | Where-Object {$_.Key -eq 'hostbasedauthentication'}
Example result:
hostbasedauthentication no
If "hostbasedauthentication" is not configured to "no", this is a finding.
✔️ Fix
From an ESXi shell, run the following command:
# esxcli system ssh server config set -k hostbasedauthentication -v no
or
From a PowerCLI command prompt while connected to the ESXi host, run the following commands:
$esxcli = Get-EsxCli -v2
$arguments = $esxcli.system.ssh.server.config.set.CreateArgs()
$arguments.keyword = 'hostbasedauthentication'
$arguments.value = 'no'
$esxcli.system.ssh.server.config.set.Invoke($arguments)