Teleport: tsh login - error de rpc en Teleport v5.0.0

Creado en 4 dic. 2020  ·  10Comentarios  ·  Fuente: gravitational/teleport

Descripción

Que paso :
Cuando ejecuto un tsh login --proxy=<my_proxy> en el cli, obtengo el siguiente resultado:

>tsh login --proxy=<my_proxy>
If browser window does not open automatically, open it by clicking on the link:
 http://127.0.0.1:53817/<GUID>
error: rpc error: code = Unimplemented desc = unknown method GetKubeServices for service proto.AuthService

Qué esperabas que sucediera :
Esperaba que esto pudiera iniciar sesión con éxito para teletransportarse

Cómo reproducirlo (de la forma más mínima y precisa posible) :
en MacOs -

>brew install teleport
>tsh version
Teleport v5.0.0 git: go1.15.5
>tsh login --proxy=<my_proxy>

Ambiente

  • Versión de teletransporte (use teleport version ): Teleport v5.0.0 git: go1.15.5
  • Versión Tsh (use tsh version ): Teleport v5.0.0 git: go1.15.5
  • SO (por ejemplo, desde /etc/os-release ): macOS Catalina v 10.15.7

  • ¿Dónde está ejecutando Teleport? (p. ej., AWS, GCP, hardware dedicado): versión 4 del lado del servidor

Registros de depuración relevantes, si corresponde

  • tsh login --proxy=<my_proxy> --debug
INFO [CLIENT]    Successful auth with proxy teleport.lacework.net:3023 client/api.go:1672
<redacted>
DEBU [AUTH]      GRPC(CLIENT): keep alive 1m0s count: 3. auth/clt.go:320
DEBU [CLIENT]    Client  is connecting to auth server on cluster "teleport.lacework.net". client/client.go:473

ERROR REPORT:
Original Error: *status.statusError rpc error: code = Unimplemented desc = unknown method GetKubeServices for service proto.AuthService
Stack Trace:
    /private/tmp/teleport-20201127-89185-jfx2dt/teleport-5.0.0/src/github.com/gravitational/teleport/lib/auth/clt.go:2978 github.com/gravitational/teleport/lib/auth.(*Client).GetKubeServices
    /private/tmp/teleport-20201127-89185-jfx2dt/teleport-5.0.0/src/github.com/gravitational/teleport/lib/kube/utils/utils.go:155 github.com/gravitational/teleport/lib/kube/utils.KubeClusterNames
    /private/tmp/teleport-20201127-89185-jfx2dt/teleport-5.0.0/src/github.com/gravitational/teleport/lib/kube/kubeconfig/kubeconfig.go:101 github.com/gravitational/teleport/lib/kube/kubeconfig.UpdateWithClient
    /private/tmp/teleport-20201127-89185-jfx2dt/teleport-5.0.0/src/github.com/gravitational/teleport/tool/tsh/tsh.go:609 main.onLogin
    /private/tmp/teleport-20201127-89185-jfx2dt/teleport-5.0.0/src/github.com/gravitational/teleport/tool/tsh/tsh.go:431 main.Run
    /private/tmp/teleport-20201127-89185-jfx2dt/teleport-5.0.0/src/github.com/gravitational/teleport/tool/tsh/tsh.go:212 main.main
    /usr/local/opt/go/libexec/src/runtime/proc.go:213 runtime.main
    /usr/local/opt/go/libexec/src/runtime/asm_amd64.s:1375 runtime.goexit
User Message:

Cualquier ayuda sería muy apreciada, ya que parece que no es posible degradar versiones a través de Homebrew en este momento.

bug tsh ux

Comentario más útil

Estoy reabriendo el problema para rastrear esto como una mejora necesaria para tsh .

Mientras tanto, la solución para cualquier otra persona que se encuentre con este problema es degradar su versión de tsh de 5.xx a 4.4.x.

Todos 10 comentarios

La solución alternativa actual que estoy usando es brew uninstall teleport e instalar manualmente tsh v4.4.5 https://get.gravitational.com/tsh-4.4.5.pkg

Parece que el problema se debe al uso del servidor de autenticación v4. Como se explica en slack Teleport v5 it's backwards compatible, but not forwards compatible ( old clients will work with new servers, but new clients may not work with old servers)

No tenemos ningún control sobre la versión empaquetada en Homebrew. La forma más segura de asegurarse de que nada se rompa debido a actualizaciones inesperadas es instalar la versión correcta de nuestro tsh PKG oficial firmado y notariado de https://goteleport.com/teleport/download

Apreciamos la respuesta de usted y su equipo @webvictim. Cerrando ya que la resolución es instalar el paquete de teletransporte desde el enlace anterior.

@rmoles / @webvictim mi 2p sería que si las versiones más nuevas de tsh no son compatibles con versiones anteriores, entonces el mensaje de error debería mejorarse para señalar al usuario su error (la versión del cliente es más nueva que la remota). He visto a muchos de nuestros operadores de incorporación encontrar este error porque el punto final remoto al que están tratando de conectarse es teletransportarse 4.4, pero acaban de ir y buscar el paquete tsh más reciente de la página de descarga oficial.

No sé si obtener la versión de autenticación es una solicitud de API autenticada o no, pero la solución ideal sería si tsh pudiera comparar la versión remota con la suya y advertir al usuario que su versión es más nueva que el mando a distancia.

Para su información, la instalación del instalador de MacOS .pkg en MacOs está bloqueada con el siguiente error: “teleport-4.4.5.pkg” cannot be opened because it is from an unidentified developer.
Los pasos para instalar de todos modos se pueden encontrar aquí: https://support.apple.com/en-gb/guide/mac-help/mh40616/mac

@rmoles teleport-4.4.5.pkg y tsh-4.4.5.pkg son en realidad cosas diferentes.

Los archivos teleport-*.pkg no están firmados, porque la forma en que se construye el binario Teleport no es actualmente compatible con los requisitos de firma de MacOS. Tenemos un problema abierto para solucionar este problema aquí: # 3158

Los archivos tsh-*.pkg están firmados con un certificado oficial de desarrollador y notarizados por Apple, por lo que se instalarán sin ningún problema.

@dnwe estoy de acuerdo. De hecho, ya exponemos la versión mínima del cliente a través de una llamada API no autenticada:

$ curl -s https://teleport.example.com:3080/v1/webapi/ping | jq
{
  "auth": {
    "type": "github",
    "second_factor": "u2f",
    "github": {
      "name": "github",
      "display": "Github"
    }
  },
  "proxy": {
    "kube": {},
    "ssh": {
      "listen_addr": "0.0.0.0:3023",
      "tunnel_listen_addr": "0.0.0.0:3080",
      "public_addr": "teleport.example.com:3080",
      "ssh_public_addr": "teleport.example.com:3023",
      "ssh_tunnel_public_addr": "teleport.example.com:3080"
    }
  },
  "server_version": "5.0.0",
  "min_client_version": "3.0.0"
}

Analizaré por qué esto no activa la lógica para advertir a los usuarios de tsh que su versión no funcionará.

Estoy reabriendo el problema para rastrear esto como una mejora necesaria para tsh .

Mientras tanto, la solución para cualquier otra persona que se encuentre con este problema es degradar su versión de tsh de 5.xx a 4.4.x.

@dnwe estoy de acuerdo. De hecho, ya exponemos la versión mínima del cliente a través de una llamada API no autenticada:

...

Analizaré por qué esto no activa la lógica para advertir a los usuarios de tsh que su versión no funcionará.

En este caso, necesitaríamos una max_client_version para advertir a los usuarios que tsh 5.x no se puede usar contra el servidor Teleport 4.x

¿Fue útil esta página
0 / 5 - 0 calificaciones