Create a temporary WHM session using the command line

It's a common security practice to install the SSH key of a user who you want to allow ssh access to your server. On a cPanel server where you may need to access the WHM this becomes an issue since logging into the WHM usually requires you to know the root password. Luckily there is a simple solution to this issue! You can create a temporary session using the command line that will allow you to log into the WHM without knowing the root password.

Generating a temporary WHM session

We will use the whmapi1 command line utility to create a temporary WHM session that we can use to access the WebHostManager without knowing the root password.

Command

root@host [~]# /usr/local/cpanel/bin/whmapi1 create_user_session user=root service=whostmgrd

Response

---
data:
  cp_security_token: /cpsess5781906767
  expires: '1548288309'
  service: whostmgrd
  session: root:ZnPGau2SgcjS5C9v:create_user_session,5b6ce9a7d0d7b3c53e5ef3f3545189c7
  url: https://host.domain.tld:2087/cpsess5781906767/login/?session=root%3aZnPGau2SgcjS5C9v%3acreate_user_session%2c5b6ce9a7d0d7b3c53e5ef3f3545189c7
metadata:
  command: create_user_session
  reason: Created session
  result: 1
  version: 1

The important part of the response is

 url: https://host.domain.tld.tld:2087/cpsess5781906767/login/?session=root%3aZnPGau2SgcjS5C9v%3acreate_user_session%2c5b6ce9a7d0d7b3c53e5ef3f3545189c7
Copy the URL and paste it into your browser and you will be automatically logged into the WHM without needing the root password.