SSH Tunnel Setup

User Guide for Setting up an SSH Tunnel

Start by creating a read-only account on the ATSD server as described in the User Account Setup Guide.

The guide uses atsd_hostname as the hostname of the ATSD server.

The guide uses nurswgvml001 as the hostname of the remote system.

In the guide, -p specifies the TCP port of the ATSD server. Indicate the correct available port. For example: -p 22.

Copy the /opt/atsd/id_rsa_atsdreadonly key generated during ATSD installation (or the one created using our User Account Setup Guide) to a remote system into the directory /opt/nmon.

Add the ATSD host to known hosts on the target server:

ssh-keyscan -H atsd_hostname >> ~/.ssh/known_hosts

On Unix systems, the permissions to the key file must not allow any access to world and group. You can achieve this with the command chmod 0600. If the permissions are less strict, the file is ignored and the SSH tunnel fails to start.

Set the permissions and ownership for the user account on remote servers. root privileges are not necessary.

Ensure you have the ownership rights for the SSH key:

ls -l /opt/nmon/id_rsa_atsdreadonly

Change ownership:

sudo chown {currentuser} /opt/nmon/id_rsa_atsdreadonly

Change permissions:

sudo chmod 0600 /opt/nmon/id_rsa_atsdreadonly

Test SSH connection

ssh atsdreadonly@atsd_hostname -i /opt/nmon/id_rsa_atsdreadonly -p 22

Open SSH tunnel

ssh -fN -L `hostname`:10000:localhost:8081 atsdreadonly@atsd_hostname -i /opt/nmon/id_rsa_atsdreadonly -p 22

In the above example, the tunnel is established between local port 10000 on the remote system and local port 8081 on the ATSD server.

If the tunnel is not established, check if you can ping the ATSD server to see if the port is available and if the username and SSH key are set correctly.

Verify that the SSH tunnel is active

ps -ef | grep ssh

The output contains the following line:

user001 31326 1 0 17:30 ? 00:00:00 ssh -fN -L nurswgvml001:10000:localhost:8081 atsdreadonly@atsd_hostname -i /opt/nmon/id_rsa_atsdreadonly

This output means that the SSH tunnel is successfully established.

Stop the SSH tunnel (using the pid from the output above)

kill 31326

Verify the connectivity from a Windows machine (optional step)

Load id_rsa_atsdreadonly into the puttygen program.

Click Save private key and save the file in *.ppk format to the local disk.

Open the putty client and connect it to the ATSD server under atsdreadonly with the ppk file.

Copy private key to remote systems.

Distribute the generated private key /opt/atsd/id_rsa_atsdreadonly to remote systems collecting nmon data.

Disable login by SSH.

This step disables the remote shell for atsdreadonly, however, it retains the tunneling capability.

sudo nano /etc/passwd

Search for nmonuser entry and replace the shell command as follows:

atsdreadonly:x:1004:1004:,,,:/home/atsdreadonly:/bin/bash
atsdreadonly:x:1004:1004:,,,:/home/atsdreadonly:/bin/false

Verify that you are no longer able to log in to ATSD server with nmonuser credentials:

ssh atsdreadonly@atsd_hostname -i /opt/nmon/id_rsa_atsdreadonly -p 22

If the atsdreadonly shell environment is not available, then the remote login is successfully disabled.