Ubuntu / Debian
Use this password in the SSH password field. Keep SSH port 22 open from the middleware server while the test is running.
# Ubuntu / Debian - run as root
export DEBIAN_FRONTEND=noninteractive
apt update
apt install -y sudo python3 python3-pip curl ca-certificates dnsutils iputils-ping traceroute mtr-tiny fio iperf3 speedtest-cli openssl
# If speedtest-cli is not available from apt, install it with pip
command -v speedtest-cli >/dev/null 2>&1 || python3 -m pip install --upgrade speedtest-cli
# Create or update the temporary probe user
PROBE_PASS=$(openssl rand -base64 24 | tr -dc 'A-Za-z0-9' | head -c 20)
id vpsprobe >/dev/null 2>&1 || adduser --disabled-password --gecos "" vpsprobe
echo "vpsprobe:${PROBE_PASS}" | chpasswd
usermod -aG sudo vpsprobe
# Allow the probe user to run test commands without being asked for sudo password
echo 'vpsprobe ALL=(ALL) NOPASSWD:ALL' >/etc/sudoers.d/vpsprobe
chmod 440 /etc/sudoers.d/vpsprobe
visudo -c
# Optional: enable password SSH login for the test window
mkdir -p /etc/ssh/sshd_config.d
cat >/etc/ssh/sshd_config.d/99-vpsprobe-password.conf <<'EOF'
PasswordAuthentication yes
KbdInteractiveAuthentication yes
EOF
systemctl reload ssh 2>/dev/null || systemctl reload sshd 2>/dev/null || true
# Prepare script directory used by optional IP Quality / Unlock probes
mkdir -p /opt/vps-perf-scripts
chmod 755 /opt/vps-perf-scripts
# Print the credentials for the public form
echo "VPS probe username: vpsprobe"
echo "VPS probe password: ${PROBE_PASS}"
echo "SSH port: 22"
Quick SSH test
ssh vpsprobe@YOUR_VPS_IP "whoami && sudo whoami && python3 --version && speedtest-cli --version"
Remove the temporary account after the review
deluser --remove-home vpsprobe 2>/dev/null || userdel -r vpsprobe 2>/dev/null || true
rm -f /etc/sudoers.d/vpsprobe /etc/ssh/sshd_config.d/99-vpsprobe-password.conf
systemctl reload ssh 2>/dev/null || systemctl reload sshd 2>/dev/null || true
AlmaLinux / Rocky / CentOS
Use this password in the SSH password field. Keep SSH port 22 open from the middleware server while the test is running.
# AlmaLinux / Rocky / CentOS - run as root
if command -v dnf >/dev/null 2>&1; then
dnf install -y epel-release || true
dnf install -y sudo python3 python3-pip curl bind-utils iputils traceroute mtr fio iperf3 openssl openssh-server firewalld || true
dnf install -y speedtest-cli || true
else
yum install -y epel-release || true
yum install -y sudo python3 python3-pip curl bind-utils iputils traceroute mtr fio iperf3 openssl openssh-server firewalld || true
yum install -y speedtest-cli || true
fi
# If speedtest-cli is not available from the OS repo, install it with pip
command -v speedtest-cli >/dev/null 2>&1 || python3 -m pip install --upgrade speedtest-cli
# Create or update the temporary probe user
PROBE_PASS=$(openssl rand -base64 24 | tr -dc 'A-Za-z0-9' | head -c 20)
id vpsprobe >/dev/null 2>&1 || useradd -m -s /bin/bash vpsprobe
echo "vpsprobe:${PROBE_PASS}" | chpasswd
usermod -aG wheel vpsprobe 2>/dev/null || true
# Allow the probe user to run test commands without being asked for sudo password
echo 'vpsprobe ALL=(ALL) NOPASSWD:ALL' >/etc/sudoers.d/vpsprobe
chmod 440 /etc/sudoers.d/vpsprobe
visudo -c
# Enable password SSH login for the test window
if grep -qE '^#?PasswordAuthentication' /etc/ssh/sshd_config; then
sed -i 's/^#\?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config
else
echo 'PasswordAuthentication yes' >>/etc/ssh/sshd_config
fi
systemctl enable --now sshd
systemctl reload sshd || true
# Open SSH port if firewalld is active
if systemctl is-active --quiet firewalld; then
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
fi
# Prepare script directory used by optional IP Quality / Unlock probes
mkdir -p /opt/vps-perf-scripts
chmod 755 /opt/vps-perf-scripts
# Print the credentials for the public form
echo "VPS probe username: vpsprobe"
echo "VPS probe password: ${PROBE_PASS}"
echo "SSH port: 22"
Quick SSH test
ssh vpsprobe@YOUR_VPS_IP "whoami && sudo whoami && python3 --version && speedtest-cli --version"
Remove the temporary account after the review
userdel -r vpsprobe 2>/dev/null || true
rm -f /etc/sudoers.d/vpsprobe
# If you enabled PasswordAuthentication only for this test, disable it again manually if needed.
systemctl reload sshd 2>/dev/null || true
Windows Server with OpenSSH
Run PowerShell as Administrator. Use the generated password in the SSH password field. Windows Server support requires OpenSSH Server.
# Windows Server with OpenSSH - run PowerShell as Administrator
# Install and enable OpenSSH Server
$cap = Get-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
if ($cap.State -ne 'Installed') {
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
}
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
# Open Windows Firewall for SSH port 22
if (-not (Get-NetFirewallRule -Name 'vpsprobe-sshd' -ErrorAction SilentlyContinue)) {
New-NetFirewallRule -Name 'vpsprobe-sshd' -DisplayName 'VPS Probe OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
}
# Generate a random password and create/update the temporary probe user
$bytes = New-Object byte[] 18
[Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($bytes)
$ProbePassword = ([Convert]::ToBase64String($bytes) -replace '[^a-zA-Z0-9]', '').Substring(0,20)
$SecurePassword = ConvertTo-SecureString $ProbePassword -AsPlainText -Force
if (Get-LocalUser -Name 'vpsprobe' -ErrorAction SilentlyContinue) {
Set-LocalUser -Name 'vpsprobe' -Password $SecurePassword
Enable-LocalUser -Name 'vpsprobe'
} else {
New-LocalUser -Name 'vpsprobe' -Password $SecurePassword -FullName 'VPS Probe User' -Description 'Temporary VPS performance probe user'
}
# Give the user enough permission for the test window
if (-not (Get-LocalGroupMember -Group 'Administrators' -Member 'vpsprobe' -ErrorAction SilentlyContinue)) {
Add-LocalGroupMember -Group 'Administrators' -Member 'vpsprobe'
}
# Ensure OpenSSH password authentication is enabled
$sshdConfig = 'C:\ProgramData\ssh\sshd_config'
if (Test-Path $sshdConfig) {
$content = Get-Content $sshdConfig -Raw
if ($content -match '(?m)^#?PasswordAuthentication\s+') {
$content = $content -replace '(?m)^#?PasswordAuthentication\s+.*$', 'PasswordAuthentication yes'
} else {
$content += "`r`nPasswordAuthentication yes`r`n"
}
Set-Content -Path $sshdConfig -Value $content -Encoding ascii
}
Restart-Service sshd
# Print the credentials for the public form
Write-Host "VPS probe username: vpsprobe"
Write-Host "VPS probe password: $ProbePassword"
Write-Host "SSH port: 22"
Quick SSH test
ssh vpsprobe@YOUR_VPS_IP "whoami && hostname"
Remove the temporary account after the review
Remove-LocalGroupMember -Group 'Administrators' -Member 'vpsprobe' -ErrorAction SilentlyContinue
Remove-LocalUser -Name 'vpsprobe' -ErrorAction SilentlyContinue
Remove-NetFirewallRule -Name 'vpsprobe-sshd' -ErrorAction SilentlyContinue
Restart-Service sshd