If you are using a Linux local computer, the simplest way to connect to a remote server via SSH is using openSSH client in your Terminal.

Table of Contents

Connecting to a remote server

Connecting to a remote server with a private key is very straightforward:

ssh -i <private key file> <username>@<public IP or public DNS>

This is an example:

ssh -i ./privatekey.pem [email protected]

If the terminal shows this question: Are you sure you want to continue connecting (yes/no/[fingerprint])?, type yes to save the fingerprint of the key.

If your remote server doesn’t use port 22 for SSH, type -p [[PORT]] at the end of the command.

ssh -i ./privatekey.pem [email protected] -p 2222

Execute a command on the remote server

You can also execute a command on the remote server just when it connects, simply type it at the end:

ssh -i ./privatekey.pem [email protected] cat /etc/os-release

* You may need to add ;exit to automatically close the connection when previous command ends its execution.

Redirecting ports with SSH

If you want to use a non-encrypted service (like VNC), you can encrypt it with SSH, doing a port redirection.

ssh -i ./privatekey.pem -L <LOCAL-PORT>:127.0.0.1:<REMOTE_PORT> [email protected]

-L stands for “local redirection”. This is an example using VNC default port:

ssh -i ./privatekey.pem -L 5900:127.0.0.1:5900 [email protected]

Then, you can access remote VNC with IP 127.0.0.1 and port 5900 (127.0.0.1 is an special IP which refers to the device itself, in this case your local computer).

Using ~/.ssh/config file

Creating this file, you can add aliases to your connections, so you don’t need to remember server info all the time:

Host your_alias
  HostName ip
  User user
  Port 22
  IdentityFile full/path/to/privatekey

Then, you simply type ssh your_alias to connect.