code: func (t *TermHandlers) HandleShell(ch ssh.Channel, req *ssh.Request, ctx *ServerContext) error {
  	var err error
  
  	// creating an empty exec request implies a interactive shell was requested
  	ctx.ExecRequest, err = NewExecRequest(ctx, "")
  	if err != nil {
  		return trace.Wrap(err)
  	}
  
  	if err := t.SessionRegistry.OpenSession(ch, req, ctx); err != nil {
  		return trace.Wrap(err)
  	}
  
  	return nil
  }
docs: // HandleShell handles requests of type "shell" which request a interactive
  // shell be created within a TTY.