If you are new to working with Linux servers and have recently created a machine with SkySilk, then you will need to be familiar with Secure Shell or SSH in order to access the machine. 


What is Secure Shell (SSH)? 

SSH creates an encrypted tunnel between your computer (or smart device!) and the remote machine, and is commonly used for command-line login. While the connection between your computer and the remote server is very secure, there is a security vulnerability that has been exploited since the genesis of remote login, and will continue to be exploited as long as the server is listening to remote login ports. 


In short, anyone may attempt a brute-force attack on the SSH server as long as the server is running, and you can see these attempts by checking the authentication logs:

cat /var/log/auth.log | less


Having a secure password is generally enough to thwart these attacks but we strongly recommend that you use a public key for authentication, otherwise you may get a visit from malicious users! 


This is why we require an SSH key during VM setup, and is also likely the reason why you cannot log in using the root password created during setup. Essentially, the public key is the lock that you install on the server, and the private key is the only key that will fit the lock. Anyone attempting to log in to the server without a private key will be met with an "access denied" error, regardless of whether the username and password were correct.


Setting up an SSH key pair 

During the setup process, you will be required to provide a public SSH key for the virtual machine. This is the hashed key which the linux server will compare against any new incoming connection. 


If you've created a machine before, you can select a previously used key from the drop down menu.


Otherwise, you will need to generate a public key pair for your new virtual machine .


Once you have generated the public key, saved the private key on your computer, and attached the public key to the server, you will be able to log in to your virtual machine.


Connecting to the Server using SSH (Mac OS X & Linux)

If you are connecting from a Unix-like machine (Mac OS or Linux), then the command to connect is simply:

ssh [user]@[ip address] 


where [user] is your user name, typically root, and [ip address] is the ip address of the virtual machine. 

# for example: 'ssh [email protected]'


Connecting to the Server using SSH (Windows)

For those with windows, you will need a third party program to connect to the server. PuTTY is the most popular program used for SSH connections, and you can find it here if you don't have it already.


Once you are ready to connect with PuTTY, you will need to specify the private key to use for authentication. 

This can be done by expanding the SSH menu of the Connection settings, and clicking on the Auth menu.


From there, click on the "Browse" button and navigate to the private key that is saved on your computer. Once you have loaded the private key, navigate back to the Session menu.


Lastly, make sure that SSH is selected and that the port is 22. Enter the ip address of your virtual machine and click open. Voila! A new window has opened and you are connected to your machine. Welcome to the wonderful world of Linux!


[OPTIONAL] You may enter the username that you are connecting with before the ip address, as in the example above, to connect using a specific user. However, a password or alternate SSH key may be required depending on how you've set things up.