Skip to content

[Feature] Support head nodes with SSH fleets #2010

@peterschmidt85

Description

@peterschmidt85

Currently, if you set up an SSH fleet, dstack requires that the dstack server can access each host via the provided SSH credentials. In many cases, compute hosts aren't accessible directly. Instead, they are accessible through so called "head" nodes.

Setup example:

  1. A head-host that can access SSH into compute-host-1 and compute-host-2.
  2. On a server node, run dstack server
  3. Create a fleet config:
type: fleet
name: private-fleet

placement: cluster

ssh_config:
  hosts:
    - compute-host-1
    - compute-host-2
   proxy_jump: # also can be defined per host; (or it can be a hostname instead of an object)
     hostname: host-node
     identity_file: ~/.ssh/private_key
  1. The dstack apply and dstack attach will try to reuse the jump host SSH config for the specified host (login-node) automatically.

It means the user must have head-node SSH config defined.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions