MCPcopy
hub / github.com/gitpod-io/gitpod / GetWorkspaceSSHKey

Method GetWorkspaceSSHKey

components/ws-proxy/pkg/sshproxy/server.go:374–389  ·  view source on GitHub ↗
(ctx context.Context, workspaceIP string)

Source from the content-addressed store, hash-verified

372}
373
374func (s *Server) GetWorkspaceSSHKey(ctx context.Context, workspaceIP string) (ssh.Signer, error) {
375 supervisorConn, err := grpc.Dial(workspaceIP+":22999", grpc.WithTransportCredentials(insecure.NewCredentials()))
376 if err != nil {
377 return nil, xerrors.Errorf("failed connecting to supervisor: %w", err)
378 }
379 defer supervisorConn.Close()
380 keyInfo, err := supervisor.NewControlServiceClient(supervisorConn).CreateSSHKeyPair(ctx, &supervisor.CreateSSHKeyPairRequest{})
381 if err != nil {
382 return nil, xerrors.Errorf("failed getting ssh key pair info from supervisor: %w", err)
383 }
384 key, err := ssh.ParsePrivateKey([]byte(keyInfo.PrivateKey))
385 if err != nil {
386 return nil, xerrors.Errorf("failed parse private key: %w", err)
387 }
388 return key, nil
389}
390
391func (s *Server) Serve(l net.Listener) error {
392 for {

Callers 1

HandleConnMethod · 0.95

Calls 3

DialMethod · 0.65
CloseMethod · 0.65
CreateSSHKeyPairMethod · 0.65

Tested by

no test coverage detected