GitLab Documentation


Note: The SSH executor supports only scripts generated in Bash and the caching feature is currently not supported.

This is a simple executor that allows you to execute builds on a remote machine by executing commands over SSH.


To use the SSH executor you need to specify executor = "ssh" under the [runners.ssh] section. For example:

  executor = "ssh"
    host = ""
    port = "22"
    user = "root"
    password = "password"
    identity_file = "/path/to/identity/file"

You can use password or identity_file or both to authenticate against the server. GitLab Runner doesn't implicitly read identity_file from /home/user/.ssh/id_(rsa|dsa|ecdsa). The identity_file needs to be explicitly specified.

The project's source is checked out to: ~/builds/<short-token>/<concurrent-id>/<namespace>/<project-name>.


To overwrite the ~/builds directory, specify the builds_dir options under [[runners]] section in config.toml.


The SSH executor is susceptible to MITM attacks (man-in-the-middle), because of the missing StrictHostKeyChecking option. This will be fixed in one of the future releases.

Leave a comment below if you have any feedback on the documentation. For support and other inquires, see getting help.