Gaining SSH Access To VMWare ESXi

*UPDATE* If you’re using ESXi 4.1 you no longer are required to manually enable SSH. You can do this via the “Troubleshooting” menu. More instructions here http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1017910

I was trying to get access to VMWare ESXi as this is the only way to access the images for each Virtual Machine as snapshots seem to have messed up an Exchange install. I will go into more depth below. But first, the following steps are required to open up SSH access to your ESXi Machine.

ESXi 3.5 does ship with the ability to run SSH, but this is disabled by default (and is not supported). If you just need to access the console of ESXi, then you only need to perform steps 1 – 3.

1) At the console of the ESXi host, press ALT-F1 to access the console window.
2) Enter unsupported in the console and then press Enter. You will not see the text you type in.
3) If you typed in unsupported correctly, you will see the Tech Support Mode warning and a password prompt. Enter the password for the root login.
4) You should then see the prompt of ~ #. Edit the file inetd.conf (enter the command vi /etc/inetd.conf).
5) Find the line that begins with #ssh and remove the #. Then save the file. If you’re new to using vi, then move the cursor down to #ssh line and then press the Insert key. Move the cursor over one space and then hit backspace to delete the #. Then press ESC and type in :wq to save the file and exit vi. If you make a mistake, you can press the ESC key and then type it :q! to quit vi without saving the file.
6) Once you’ve closed the vi editor, run the command /sbin/services.sh restart to restart the management services. You’ll now be able to connect to the ESXi host with a SSH client.

Update for ESXi 3.5 Update 2 – With Update 2 the service.sh command no longer restarts the inetd process which enables SSH access. You can either restart your host or run ps | grep inetd to determine the process ID for the inetd process. The output of the command will be something like 1299 1299 busybox      inetd, and the process ID is 1299. Then run kill -HUP <process_id> (kill -HUP 1299 in this example) and you’ll then be able to access the host via SSH.

Credit to the above steps go out to vm-help.com and you can read the above steps and comments on thier site.

The main reason why I required this, is the snapshots provided with VMWare work great. But I had to re-install exchange becuase of a configuration change that couldn’t be reversed. I had created a Active Directory Child Domain on an existing Domain, and then had setup Exchange 2007. But in the long run, this wasn’t required, instead I wanted to use our existing Domain. Removing the new Child Domain and deleting the Domain Controller/Demoting woudl have caused issues with Exchange.

So I decided to use ESXi Snapshot Manager to revert back to when I created a Snapshot after install Windows Server 2003, as it was a clean install. Once I did then and then went on to install Exchange again. Exchange Setup had complained that the server’s role was already installed and setup. Which was not the case, so I don’t know what really happened, either way. I’m going to make backups through SSH from now on.


Did you like this article?


0 Shares:
You May Also Like

Sun Microsystems Acquires MySQL

I woke up to a very big announcement today. I was browsing digg and found that MySQL was acquired by Sun Microsystems. You can read more about the acquisition on the MySQL blog of Kaj Arno about the acquisition of MySQL by Sun Microsystems. My take, with Sun releasing Solaris into the Open Source realm, this is just another piece of software that they can put under their belt and package with Solaris. I have included some blurbs from Kaj Arno's blog below.
Read More