From 4755655109f212f5de4ef8be94c4838b316cd65e Mon Sep 17 00:00:00 2001 From: Anton Miniailo Date: Tue, 17 Oct 2023 12:21:54 -0400 Subject: [PATCH] Remove sending tracingContext in NewClientConn When dialing agentless nodes it lead to failure to establish ssh connection. --- api/observability/tracing/ssh/ssh.go | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/api/observability/tracing/ssh/ssh.go b/api/observability/tracing/ssh/ssh.go index eafbc78bb83a2..1e6a44cb919b3 100644 --- a/api/observability/tracing/ssh/ssh.go +++ b/api/observability/tracing/ssh/ssh.go @@ -17,21 +17,17 @@ package ssh import ( "context" "encoding/json" - "fmt" "net" "time" "github.com/gravitational/trace" - log "github.com/sirupsen/logrus" "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/propagation" semconv "go.opentelemetry.io/otel/semconv/v1.10.0" oteltrace "go.opentelemetry.io/otel/trace" "golang.org/x/crypto/ssh" - "github.com/gravitational/teleport/api/constants" "github.com/gravitational/teleport/api/observability/tracing" - "github.com/gravitational/teleport/api/utils/sshutils" ) const ( @@ -147,7 +143,7 @@ func Dial(ctx context.Context, network, addr string, config *ssh.ClientConfig, o // properly over the ssh connection. func NewClientConn(ctx context.Context, conn net.Conn, addr string, config *ssh.ClientConfig, opts ...tracing.Option) (ssh.Conn, <-chan ssh.NewChannel, <-chan *ssh.Request, error) { tracer := tracing.NewConfig(opts).TracerProvider.Tracer(instrumentationName) - ctx, span := tracer.Start( + ctx, span := tracer.Start( //nolint:staticcheck,ineffassign // keeping shadowed ctx to avoid accidental missing in the future ctx, "ssh/NewClientConn", oteltrace.WithSpanKind(oteltrace.SpanKindClient), @@ -163,20 +159,6 @@ func NewClientConn(ctx context.Context, conn net.Conn, addr string, config *ssh. ) defer span.End() - hp := &sshutils.HandshakePayload{ - TracingContext: tracing.PropagationContextFromContext(ctx, opts...), - } - - if len(hp.TracingContext) > 0 { - payloadJSON, err := json.Marshal(hp) - if err == nil { - payload := fmt.Sprintf("%s%s\x00", constants.ProxyHelloSignature, payloadJSON) - if _, err := conn.Write([]byte(payload)); err != nil { - log.WithError(err).Warnf("Failed to pass along tracing context to proxy %v", addr) - } - } - } - c, chans, reqs, err := ssh.NewClientConn(conn, addr, config) if err != nil { return nil, nil, nil, trace.Wrap(err)