nsc ssh

Connect to ephemeral environments.

ssh connects to a previously created ephemeral environment. It establishes a ssh connection to the target environment, over Namespace's networking, in a way that end-to-end encryption is retained, but the target host is not exposed directly to the Internet.

To enable experimentation, ssh also has a "quick create" mode built-in, allowing you to quickly create a named environment (a sandbox), or get back to a previously created sandbox.

This allows you to jump into a container-enabled terminal in a few seconds.

Usage

nsc ssh [--container_name <name>] [-T] [-t] [--oneshot] [-A] [--unique_tag <name>] [<id>] [command]

Example

Create an ephemeral instance:

$ nsc create
  Created new ephemeral environment! ID: 85a32emcg99ii

SSH into the created instance:

$ nsc ssh 85a32emcg99ii
85a32emcg99ii:~#

You can also omit the environment id, and a list of your environments will be presented to you.

$ nsc ssh
┌─────────────────────────────────────────────────────────────────────────────────┐
 Instance ID    CPU  Memory   Arch   Created       Time to live         Purpose
│─────────────────────────────────────────────────────────────────────────────────│
 85a32emcg99ii  4    4.0 GiB  amd64  10 hours ago  29 minutes from now  ...
└─────────────────────────────────────────────────────────────────────────────────┘

Finally, you can also issue commands to the ssh sessions directly from nsc.

$ nsc ssh 85a32emcg99ii ls /
bin         etc         lib         media       nsc         proc        run         srv         tmp         var
dev         home        lost+found  mnt         opt         root        sbin        sys         usr         vendor

Options

--container_name <name>

Connects to the container named name in the environment, instead of the instance environment itself.

On a GitHub Actions runner instance, use --container_name github-runner to connect to the runner container while it is handling a job.

--disable-pty, -T

Disables allocation of a pseudo-terminal for the SSH session. This is useful when running a non-interactive command whose output you're piping elsewhere, where a TTY would otherwise introduce unwanted formatting.

--force-pty, -t

Forces allocation of a pseudo-terminal, even when running a non-interactive command. This is useful for commands that expect a terminal to be present, such as ones that produce colored output or otherwise behave differently without one.

--oneshot

If specified, a temporary instance is created for the SSH session and destroyed as soon as you disconnect. This is convenient for quick, one-off experiments where you don't want the instance to stick around afterward.

--ssh_agent, -A

Forward your local SSH agent connection, to the remote environment.

--unique_tag <name>

If specified, creates an instance with the specified unique tag, so you can identify or reference that specific environment later.

Last updated