Skip to content

Fix OpenSSH EICE nodes connections#59928

Merged
Joerger merged 3 commits intomasterfrom
joerger/fix-eice-connections
Oct 7, 2025
Merged

Fix OpenSSH EICE nodes connections#59928
Joerger merged 3 commits intomasterfrom
joerger/fix-eice-connections

Conversation

@Joerger
Copy link
Copy Markdown
Contributor

@Joerger Joerger commented Oct 3, 2025

Changelog: Fix a bug where OpenSSH EICE node connections would fail.

In #58700, we mistakenly began to require AgentlessSigner to be set for OpenSSH EICE node before it is actually set.

Fixes #59922

@Joerger Joerger force-pushed the joerger/fix-eice-connections branch from b063fad to b4f6629 Compare October 3, 2025 21:07
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we write a test that would have caught this bug?

Copy link
Copy Markdown
Contributor Author

@Joerger Joerger Oct 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a basic test for CheckDefaults. I'm not sure about adding a more in-depth test (e.g. fully mocked EICE flow in an integration test) given that the EICE flow is deprecated.

Comment thread lib/reversetunnel/local_cluster.go Outdated
}
if s.TargetServer.IsOpenSSHNode() {
switch s.TargetServer.GetSubKind() {
case types.SubKindTeleportNode:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add a "" case too just to be safe? I'm not sure we enforce that the subkind must be "teleport" for regular node heartbeats.

Suggested change
case types.SubKindTeleportNode:
case types.SubKindTeleportNode, "":

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SubKind() defaults to Teleport Node if unset:

func (s *ServerV2) GetSubKind() string {
// if the server is a node subkind isn't set, this is a teleport node.
if s.Kind == KindNode && s.SubKind == "" {
return SubKindTeleportNode
}

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
Copy link
Copy Markdown
Contributor

@marcoandredinis marcoandredinis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just tested this and it works 👍

Image

@Joerger Joerger added this pull request to the merge queue Oct 7, 2025
Merged via the queue into master with commit 1796b40 Oct 7, 2025
40 checks passed
@Joerger Joerger deleted the joerger/fix-eice-connections branch October 7, 2025 17:02
@backport-bot-workflows
Copy link
Copy Markdown
Contributor

@Joerger See the table below for backport results.

Branch Result
branch/v16 Failed
branch/v17 Failed
branch/v18 Failed

Joerger added a commit that referenced this pull request Oct 9, 2025
* Don't require agentless signer during CheckAndSetDefaults for OpenSSH EICE nodes.

* Add CheckDefaults test.

* Update lib/reversetunnel/local_cluster.go

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>

---------

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
Joerger added a commit that referenced this pull request Oct 9, 2025
* Don't require agentless signer during CheckAndSetDefaults for OpenSSH EICE nodes.

* Add CheckDefaults test.

* Update lib/reversetunnel/local_cluster.go

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>

---------

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
Joerger added a commit that referenced this pull request Oct 9, 2025
* Don't require agentless signer during CheckAndSetDefaults for OpenSSH EICE nodes.

* Add CheckDefaults test.

* Update lib/reversetunnel/local_cluster.go

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>

---------

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
Joerger added a commit that referenced this pull request Oct 9, 2025
* Don't require agentless signer during CheckAndSetDefaults for OpenSSH EICE nodes.

* Add CheckDefaults test.

* Update lib/reversetunnel/local_cluster.go

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>

---------

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
github-merge-queue bot pushed a commit that referenced this pull request Oct 14, 2025
* Don't require agentless signer during CheckAndSetDefaults for OpenSSH EICE nodes.

* Add CheckDefaults test.

* Update lib/reversetunnel/local_cluster.go



---------

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
github-merge-queue bot pushed a commit that referenced this pull request Oct 14, 2025
* Don't require agentless signer during CheckAndSetDefaults for OpenSSH EICE nodes.

* Add CheckDefaults test.

* Update lib/reversetunnel/local_cluster.go



---------

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
github-merge-queue bot pushed a commit that referenced this pull request Oct 14, 2025
* Don't require agentless signer during CheckAndSetDefaults for OpenSSH EICE nodes.

* Add CheckDefaults test.

* Update lib/reversetunnel/local_cluster.go



---------

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
rhammonds-teleport pushed a commit that referenced this pull request Nov 6, 2025
* Don't require agentless signer during CheckAndSetDefaults for OpenSSH EICE nodes.

* Add CheckDefaults test.

* Update lib/reversetunnel/local_cluster.go

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>

---------

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

OpenSSH connections using EC2 Instance Connect endpoints don't work in 17.7.7

4 participants