Teleport: tshlogin-テレポートv5.0.0のrpcエラー

作成日 2020年12月04日  ·  10コメント  ·  ソース: gravitational/teleport

説明

何が起こったのか
CLIでtsh login --proxy=<my_proxy>を実行すると、次の出力が得られます。

>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

あなたが起こると期待したこと
これでテレポートに正常にログインできると思っていました

それを再現する方法(可能な限り最小限かつ正確に)
MacOで-

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

環境

  • テレポートバージョン( teleport version ):テレポートv5.0.0 git:go1.15.5
  • Tshバージョン( tsh version ):テレポートv5.0.0 git:go1.15.5
  • OS(例: /etc/os-release ):macOS Catalina v 10.15.7

  • テレポートはどこで実行していますか? (例:AWS、GCP、専用ハードウェア):サーバー側v4

該当する場合、関連するデバッグログ

  • 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:

現時点では自作を介してバージョンをダウングレードすることはできないようですので、どんな助けでも大歓迎です。

bug tsh ux

最も参考になるコメント

tsh必要な改善として、これを追跡するために問題を再開しています。

当面の間、この問題が発生した場合の回避策は、 tshバージョンを5.xxから4.4.xにダウングレードすることです。

全てのコメント10件

私が使用している現在の回避策は、 brew uninstall teleport 、手動でtsh v4.4.5https //get.gravitational.com/tsh-4.4.5.pkgをインストールすることです

問題は認証サーバーv4の使用にあるようです。 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)

Homebrewにパッケージされているバージョンを制御することはできません。 予期しないアップグレードによって何も壊れないようにする最も安全な方法は、 https: //goteleport.com/teleport/downloadから公式に署名され公証されたtsh PKGの正しいバージョンをインストールすることです

あなたとあなたのチーム@webvictimからの応答に感謝します。 解決策として閉じるのは、上記のリンクからテレポートパッケージをインストールすることです。

@rmoles / @webvictim私の2pは、新しいtshバージョンに下位互換性がない場合、ユーザーに間違いを示すようにエラーメッセージを改善する必要があるということです(クライアントバージョンはリモートよりも新しいです)。 接続しようとしているリモートエンドポイントがテレポート4.4であるため、多くのオンボーディングオペレーターがこのエラーに遭遇するのを見てきましたが、公式ダウンロードページから最新のtshパッケージを取得しました。

authVersionのフェッチが認証済みまたは非認証のAPIリクエストであるかどうかはわかりませんが、理想的な解決策は、 tshがリモートバージョンをそれ自体と照合して、バージョンがより新しいことをユーザーに警告できる場合です。リモート。

MacOSにMacOS.pkgインストーラーをインストールすると、次のエラーでブロックされます: “teleport-4.4.5.pkg” cannot be opened because it is from an unidentified developer.
とにかくインストールする手順はここで見つけることができます: https

@rmoles teleport-4.4.5.pkgtsh-4.4.5.pkgは実際には異なるものです。

テレポートバイナリの構築方法は現在MacOSの署名要件と互換性がないため、 teleport-*.pkgファイルは署名されていません。 ここでこれを修正するための未解決の問題があります:#3158

tsh-*.pkgファイルは、公式の開発者証明書で署名され、Appleによって公証されているため、問題なくインストールされます。

@dnwe同意します。 実際には、認証されていないAPI呼び出しを介して最小クライアントバージョンをすでに公開しています。

$ 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"
}

tshユーザーにバージョンが機能しないことを警告するロジックがトリガーされない理由を調べます。

tsh必要な改善として、これを追跡するために問題を再開しています。

当面の間、この問題が発生した場合の回避策は、 tshバージョンを5.xxから4.4.xにダウングレードすることです。

@dnwe同意します。 実際には、認証されていないAPI呼び出しを介して最小クライアントバージョンをすでに公開しています。

..。

tshユーザーにバージョンが機能しないことを警告するロジックがトリガーされない理由を調べます。

この場合、tsh5.xをテレポート4.xサーバーに対して使用できないことをユーザーに警告するために必要なのはmax_client_versionです。

このページは役に立ちましたか?
0 / 5 - 0 評価