Feature: SSH key/agent options and remote shell customization #185
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Corresponding rsync flags/behavior:
-e, --rsh=COMMAND— specify the remote shell to use--rsync-path=PATH— specify the path to the remote rsync (or fastsync-server)-i, --identity-file=FILE— SSH private key-o ssh_option/--ssh-option— pass arbitrary SSH optionsCurrent FastSync behavior:
src/shared/transport_ssh.c:105-124hardcodes the SSH command as:There is no way to specify an identity file, a custom remote shell, extra SSH options, or an alternate remote server path.
Proposed changes:
-e <cmd>/--rsh=<cmd>— overridesshbinary--ssh-port <n>(already exists as-p)-i <file>/--identity-file=<file>— pass-i <file>to SSH--ssh-option <opt>— pass arbitrary-o <opt>flags--rsync-path=<path>/--server-path=<path>— remote path tofastsync-serverchar* ssh_command,char* ssh_identity,char** ssh_options,char* server_pathssh_argvdynamically from config fieldsPriority: medium
Rationale: Production SSH deployments commonly require key files, jump hosts, custom SSH options, and non-default binary paths. This is a blocker for many real-world uses.
Acceptance criteria:
-i ~/.ssh/mykeysucceeds without password prompt when the key is authorized-e '/usr/bin/ssh -J bastion'uses the specified SSH command/options--server-path=/opt/fastsync/bin/fastsync-serverruns the server from the specified path--ssh-option='StrictHostKeyChecking=no'is passed through