1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Google Cloud Compute Engine なLinux VM が認識するユーザーID にご注意を

Posted at

皆さん、こんにちは。
ゼロバンク・デザインファクトリー株式会社(以下、ZDF )にてTechnical Lead をさせて頂いている家壽田(けすだ)です。
今回は、Google Cloud Compute Engine をお使いの方々にちょっとした注意事項をお届けできればと思い、筆をとりました。

はじめに

以下条件にて実施しています。

  • Google Cloud Compute Engine 上のLinux VM をGoogle Cloud コンソール(GUI )から作成しています。
  • OS Login は有効にしていません。
  • アクセス経路はIdentity Aware Proxy (以下、IAP )経由になります。
  • ログインアカウントはm.kesuda@{domain} です。(Google Cloud コンソール / gcloud コマンド共)
  • gcloud コマンドはWindows のコマンドラインにて実行しています。

Google Cloud コンソールから、ブラウザ経由でSSH してみる

m_kesuda@{vm name}:~$ 

ユーザー名はm_kesuda (アンダースコア)になっています。

gcloud コマンドでscp してみる

Linux VM 上のユーザーIDがアンダースコア付きなので、/home/m_kesudaにscp してみます。
※事前にtest.txtの準備を忘れずに。(異なるエラーtest.txt: No such file or directoryが出ますので)

gcloud compute scp test.txt {vm name}:/home/m_kesuda --zone {zone} --tunnel-through-iap --project {project name}

pscp: unable to open /home/m_kesuda/test.txt: permission denied
ERROR: (gcloud.compute.scp) [{省略}\Google\Cloud SDK\google-cloud-sdk\bin\sdk\pscp.exe] exited with return code [1].

権限がないと怒られます。
ログインアカウントはブラウザ経由のSSH と同じなのになぜ?!

gcloud コマンドでSSH してみる

gcloud compute ssh {vm name} --zone {zone} --tunnel-through-iap --project {project name}

m.kesuda@{vm name}:~$ 

ユーザー名がm.keusda (ピリオド)になっているのがわかります。

scp 先を変更してみる

gcloud コマンド経由でSSH した際にユーザー名がピリオドになっていたので/home/m_kesuda/home/m.kesudaに変更して実行してみます。

gcloud compute scp test.txt {vm name}:/home/m.kesuda --zone {zone} --tunnel-through-iap --project {project name}

test.txt                  | 0 kB |   0.0 kB/s | ETA: 00:00:00 | 100%

成功。

ブラウザ経由でSSH した際のユーザーID のホームに転送するには?!

gcloud コマンドの場合、Linux VM 上のユーザーID はピリオド付きで認識されるので、VM 名にブラウザ経由でSSH した際のユーザーID を認識させる形でscp してみます。

gcloud compute scp test.txt m_kesuda@{vm name}:/home/m_kesuda --zone {zone} --tunnel-through-iap --project {project name}

test.txt                  | 0 kB |   0.0 kB/s | ETA: 00:00:00 | 100%

成功。

実際、Linux VM 上ではどうなってるかと言えば。。。

$ ls -al /home
total 16
drwxr-xr-x  4 root     root     4096 Feb  2 06:24 .
drwxr-xr-x 18 root     root     4096 Feb  2 06:23 ..
drwxr-xr-x  3 m.kesuda m.kesuda 4096 Feb  2 06:31 m.kesuda
drwxr-xr-x  3 m_kesuda m_kesuda 4096 Feb  2 06:35 m_kesuda

当たり前と言えば当たり前ですが、別のアカウントとして認識されています。

まとめ

Google アカウント名にピリオドが含まれている場合において、ブラウザ経由のSSH と gcloud コマンド経由のSSH / scp ではLinux VM 上のユーザーID が変わってしまうケースがあるようです。
全てを洗い出した訳ではありませんが、

  • ブラウザ経由のSSH = アンダースコア (ピリオドからの変換あり)
  • gcloud コマンド経由のSSH / scp = ピリオド (変換なし)

ということになります。
ご注意を!!

尚、Google アカウント名にピリオドなど文字以外がないname@{domain}の場合は変換される要素がないので、どちらでも同じアカウントとして認識されます。

終わりに

紛らわしいので、どちらかに統一頂きたいものですね。(^^;

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?