SSH is a network protocol for connecting remotely to a server. SSH uses traffic encryption algorithms, so a SSH connection is secure.

The connection is made under a remote server account. A password or SSH keys are used for authentication.

The software for SSH consists of two parts:

  • server — installed on a remote server;
  • client — installed on the user's computer.

Connecting to a VM via SSH


Installing client software

For the Unix OS family (Ubuntu, Debian, AlmaLinux, macOS, etc.), no additional software is required. 

For Windows 10 or higher, install the OpenSSH client component.

Connecting with a login and password

  1. Open the terminal window or the console.
  2. Enter the command:

    ssh root@host
    BASH

    host — IP address or domain name of the VM

  3. Enter the root password of the VM.

Connecting using SSH keys

SSH key consists of a pair of keys — the private key and the public key. The private key is the secret information that is kept by the user. The public key must be stored on the server to be accessed via SSH.

  1. Generate the key:
    1. Open the terminal window or the console.
    2. Enter the command:

      ssh-keygen
      CODE
    3. Specify the name and path to the file for SSH keys. By default, in Windows, the SSH key is stored in the C:\Users\<username>\.ssh\ directory, and in Unix family OS — in /home/<username>/.ssh/. By default, the private key is saved to the id_rsa file, and the public key — to id_rsa.pub.
  2. Copy the key to the VM:
    • to add the key in new VMs automatically, specify it in the client area;
    • to provide the key to an existing VM, copy its contents to the /root/.ssh/authorized_keys file on the VM. On Unix systems you can use the command to do this:

      ssh-copy-id -i <path_to_key> root@host
      BASH

      <path_to_key> — path to the file with the opened SSH key

      host — IP address or domain name of the VM

  3. Connect to the VM:

    1. Open the terminal window or the console.
    2. Enter the command:

      ssh root@host
      BASH

      host — IP address or domain name of the VM

Copying files

You can copy files from a workstation to a VM and back using the scp utility. To do this:

  1. Open the terminal window or the console.
  2. Enter the command:

    Copy a file from workstation to VM

    scp <path_to_local_file> <user>@<host>:<path_to_remote_file>
    BASH

    Copy a file from VM to workstation

    scp <user>@<host>:<path_to_remote_file> <path_to_local_file> 
    BASH

    <path_to_local_file> — path to the file on the workstation

    <user> — account with superuser permissions

    <host> — IP address or domain name of the VM

    <path_to_remote_file> — path to the file on the VM

    Example command:

    scp my_local_file.txt root@192.0.2.1:/root/my_dir/my_remote_file.txt
    BASH