Man page - gh-codespace-ssh(1)

Packages contains this manual

Manual

GH-CODESPACE-SSH

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXAMPLE
SEE ALSO

NAME

gh-codespace-ssh - SSH into a codespace

SYNOPSIS

gh codespace ssh [<flags>...] [-- <ssh-flags>...] [<command>]

DESCRIPTION

The ssh command is used to SSH into a codespace. In its simplest form, you can run gh cs ssh , select a codespace interactively, and connect.

The ssh command will automatically create a public/private ssh key pair in the ˜/.ssh directory if you do not have an existing valid key pair. When selecting the key pair to use, the preferred order is:

1.

Key specified by -i in <ssh-flags>

2.

Automatic key, if it already exists

3.

First valid key pair in ssh config (according to ssh -G )

4.

Automatic key, newly created

The ssh command also supports deeper integration with OpenSSH using a --config option that generates per-codespace ssh configuration in OpenSSH format. Including this configuration in your ˜/.ssh/config improves the user experience of tools that integrate with OpenSSH, such as Bash/Zsh completion of ssh hostnames, remote path completion for scp/rsync/sshfs , git ssh remotes, and so on.

Once that is set up (see the second example below), you can ssh to codespaces as if they were ordinary remote hosts (using ssh , not gh cs ssh ).

Note that the codespace you are connecting to must have an SSH server pre-installed. If the docker image being used for the codespace does not have an SSH server, install it in your Dockerfile or, for codespaces that use Debian-based images, you can add the following to your devcontainer.json :

"features": {

"ghcr.io/devcontainers/features/sshd:1": {

"version": "latest"

}

}

OPTIONS

-c , --codespace <string>

Name of the codespace

--config

Write OpenSSH configuration to stdout

-d , --debug

Log debug data to a file

--debug-file <string>

Path of the file log to

--profile <string>

Name of the SSH profile to use

-R , --repo <string>

Filter codespace selection by repository name (user/repo)

--repo-owner <string>

Filter codespace selection by repository owner (username or org)

--server-port <int> (default 0)

SSH server port number (0 => pick unused)

EXAMPLE

$ gh codespace ssh

$ gh codespace ssh --config > ˜/.ssh/codespaces
$ printf ’Match all\nInclude ˜/.ssh/codespaces\n’ >> ˜/.ssh/config

SEE ALSO

gh-codespace(1)