LoginSignup
0
0

More than 3 years have passed since last update.

gcloud compute ssh でサーバに接続できなくなった(Permission denied (publickey,gssapi-keyex,gssapi-with-mic))原因と解決策

Posted at

はじめに

原因調査にかなり苦戦したので、備忘録も兼ねて記事として公開します。
同様の事象に悩まされている方の参考になれば幸いです。

起きた問題

  • 一部のメンバーが、特定のサーバにSSHで接続できない
    • 接続できないのは、新規参入メンバーや直近でPCを新しい端末に交換したメンバーのみ
    • 問題なく接続できるサーバもある
  • 認証鍵ファイル(google_compute_engine, google_compute_engine.pub)を作り直しても直らない

環境

  • 接続先サーバ: CentOS7
  • 接続元PC: macOS Big Sur

接続しようとした際のエラーメッセージ

# SSH接続しようとすると、
gcloud compute ssh --zone "asia-northeast1-b" "VM_NAME" --project "PROJECT_NAME"

# 以下のようなエラーが出力され、接続できない
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].

解決策

SSH接続する際のユーザー名を指定することで解決しました。

gcloud compute ssh --zone "asia-northeast1-b" "USERNAME@VM_NAME" --project "PROJECT_NAME"

参考:https://cloud.google.com/compute/docs/instances/ssh#metadata-managed_ssh_connections

原因

接続先サーバ側で、ユーザーの作成に失敗していたのが原因でした。

  • 接続できないユーザーのローカルマシン(Mac)のユーザー名は数字のみ(例: 1234)
    ※端末の管理上、管理番号や社員番号等でユーザー作成されている場合など
  • gcloudコマンドでは特にユーザー名を指定しない場合、デフォルトでローカルのユーザー名が使われる
  • gcloudコマンドで初めてSSH接続する際、接続先サーバ側でユーザー作成が行われる
  • Linuxではユーザー名の先頭に数字を指定することはできない

以上のことから、数字から始まるユーザー名でユーザー作成に失敗し、結果的に権限がない旨のエラーを返していたのが原因と思われます。

補足:一部問題なく接続できていたサーバはOSのバージョンが少し古かったので、数字のみのユーザー名でもユーザー作成できていたようです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0