Skip to main content

Accessing the administrative shell (SSH)

SSH access allows you to run the GitHub Enterprise Server command line utilities to troubleshoot, run backups, and configure replication.

About administrative shell access

If you have SSH access to the administrative shell, you can run GitHub Enterprise Server's command line utilities. SSH access is also useful for troubleshooting, running backups, and configuring replication. Administrative SSH access is managed separately from Git SSH access and is accessible only via port 122.

Enabling access to the administrative shell via SSH

To enable administrative SSH access, you must add your SSH public key to your instance's list of authorized keys. For more information, see "Generating a new SSH key and adding it to the ssh-agent."

Tip: Changes to authorized SSH keys take effect immediately.

  1. From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .

    Screenshot of the rocket ship icon for accessing site admin settings

  2. If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.

    Screenshot of "Site admin" link

  3. In the left sidebar, click Management Console. Management Console tab in the left sidebar

  4. Under "SSH access", paste your key into the text box, then click Add key. Text box and button for adding an SSH key

  5. Under the left sidebar, click Save settings.

    Screenshot of the save settings button in the Management Console

    Note: Saving settings in the Management Console restarts system services, which could result in user-visible downtime.

  6. Wait for the configuration run to complete.

    Configuring your instance

Connecting to the administrative shell over SSH

After you've added your SSH key to the list, connect to the instance over SSH as the admin user on port 122.

$ ssh -p 122 admin@github.example.com
Last login: Sun Nov 9 07:53:29 2014 from 169.254.1.1
admin@github-example-com:~$ █

Troubleshooting SSH connection problems

If you encounter the Permission denied (publickey) error when you try to connect to your GitHub Enterprise Server instance via SSH, confirm that you are connecting over port 122. You may need to explicitly specify which private SSH key to use.

To specify a private SSH key using the command line, run ssh with the -i argument.

ssh -i /path/to/ghe_private_key -p 122 admin@HOSTNAME

You can also specify a private SSH key using the SSH configuration file (~/.ssh/config).

Host HOSTNAME
  IdentityFile /path/to/ghe_private_key
  User admin
  Port 122

Accessing the administrative shell using the local console

In an emergency situation, for example if SSH is unavailable, you can access the administrative shell locally. Sign in as the admin user and use the password established during initial setup of GitHub Enterprise Server.

Access limitations for the administrative shell

Administrative shell access is permitted for troubleshooting and performing documented operations procedures only. Modifying system and application files, running programs, or installing unsupported software packages may void your support contract. Please contact GitHub Enterprise Support if you have a question about the activities allowed by your support contract.