Skip to content

[Feature Request]: Add more options to SSH connexion #50

Open

Description

@edmc73

Problem / Motivation

Could we have the option to use a configuration file like the one in .ssh/config?

I specifically need to use ProxyJump to access certain servers.

Thanks

Proposed Solution

When creating a new data source and using SSH mode, you could add a field named ProxyJump where you would enter the username and hostname of the machine acting as the proxy.
This field only appears if a private key has been configured for the selected SSH connection profile.

Alternatives Considered

No response

Area

Other

Additional Context

Image

Activity

  1. self-assigned this
    on May 5, 2026
  2. Skyfay commented on May 5, 2026

    @Skyfay
    Owner

    Hey @edmc73

    Thanks for your feature request.

    Implementing ProxyJump isn't trivial, the underlying ssh2 library doesn't support it natively, which means we'd need to manually implement a two-step connection setup (connect to the proxy first, open a TCP channel, then tunnel the actual SSH session through it). This adds meaningful complexity and potential failure points to the SSH stack, which is why I'm a bit hesitant to prioritize it right now.

    I'll keep this issue open to gauge interest. If it gets enough votes/reactions, I'll revisit and plan it properly. If interest stays low, I may close it down the line to keep the backlog clean.

    If you'd like to upvote this, feel free to add a 👍 reaction to the issue that helps me prioritize!

    Hope this is okay :)

  3. edmc73 commented on May 5, 2026

    @edmc73
    Author

    Thanks for your reply!

    Okay, I understand it's not straightforward with the ssh2 library.

    I saw that you can directly call the system command via child_process:

    import { exec } from 'child_process';
    // SSH will then natively handle the config file and ProxyJump
    exec('ssh my-alias-config "ls /var/log"', (err, stdout) => { ... });
    

    This would allow the use of the ~/.ssh/config file.

    But this might not be very clean.

    An alternative solution for me would be to open SSH tunnels on the Docker host machine or in another Docker container.

    Or, ideally, I would have a dbackup agent that installs on the remote machines and communicates via a secure HTTPS API.

  4. Skyfay commented on May 5, 2026

    @Skyfay
    Owner

    Thanks for your feedback.

    Calling the system ssh binary via child_process would indeed make ~/.ssh/config and ProxyJump work “for free”. However, I’m a bit hesitant to go that route because it introduces a second SSH implementation next to ssh2, requires the SSH client to be present in the container, and increases the security and maintenance surface (escaping, injection risks, platform differences, harder debugging). It also gets tricky once we need streaming, file transfers, and consistent behavior across adapters.

    For now, the most reliable workaround is still to create the tunnel outside of DBackup (on the Docker host or in a dedicated sidecar container) and then use “direct” mode against the local forwarded port.

    Regarding the dedicated remote agent there is already a feature request for this: #40
    Maybe read my comment there.

    I’ll keep this issue open and label it as “more votes needed”. If more users confirm they need ProxyJump support, I’ll revisit and plan a proper implementation.

    Thank you for helping us to make DBackup better :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions