Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for connecting to an external system via an SSH tunnel #1020

Merged

Conversation

dguggemos
Copy link
Contributor

This PR fixes #985. It extends the managed connections with support for establishing a local port forwarding to an external system, e.g. a broker, via an SSH connection. Ditto takes care of creating the tunnel and using it transparently to connect to the actual endpoint when the functionality is enabled in the connection's configuration.

VadimGue and others added 30 commits March 4, 2021 15:15
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
…nnel. Ssh tunnel management is done in new SshTunnelActor. The tunnel is controlled (open/close) with the existing state machine in BaseClientActor. Add connecting via tunnel for existing protocols (except Kafka, which requires multiple connections to bottstrap server and zookeeper).

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
…stablish ssh tunnel when testing a connection

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
…add username to ssh public key credentials

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
…ion for parsing errors to ExceptionMapper

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
…ession (no default fallbacks)

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
…lobally

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
…s null in connectivity error responses

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
… it from basic section

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
…rformance impact of using ssh tunneling

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
VadimGue and others added 12 commits March 29, 2021 13:28
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
…d without required configuration, restart tunnel actor in case of an unexpected failure

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
…face to improve testability

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
…sh tunneling

Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
Signed-off-by: Dominik Guggemos <dominik.guggemos@bosch.io>
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
Signed-off-by: Vadim Guenther <vadim.guenther@bosch.io>
@VadimGue
Copy link
Contributor

VadimGue commented Apr 6, 2021

@thjaeckle i added the @since tags

@thjaeckle thjaeckle added this to the 2.0.0 milestone Apr 6, 2021
@thjaeckle thjaeckle merged commit c7742f1 into eclipse-ditto:master Apr 6, 2021
@thjaeckle thjaeckle deleted the feature/support-ssh-over-connection branch April 6, 2021 08:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support managed connection via SSH tunnel
3 participants