Google Compute Engine SSH - nama pengguna yang berbeda setelah beralih ke Login OS

1

Saya membuat VM Compute Engine (Ubuntu 18.04), dan ketika saya login ke dalamnya menggunakan tombol SSH dalam daftar instance VM saya login sebagai pengguna username.

Setelah beberapa saat, saya menyadari bahwa saya perlu dapat menggunakan klien SSH lain juga. Sesuai https://cloud.google.com/compute/docs/ineses/connecting-advanced Saya mengaktifkan Login OS dengan menambahkan pasangan nilai-kunci dalam metadata, di mana kunci adalah enable-oslogindan nilainya TRUE.

Saya kemudian mencoba menambahkan kunci SSH yang ada:

gcloud compute os-login ssh-keys add --key-file path/to/key.pub --ttl 0

yang berhasil kecuali satu masalah utama: itu telah menambahkan kunci untuk pengguna username_gmail_comdan hanya akan memungkinkan saya untuk ssh ke VM saya sebagai pengguna itu:

ssh username_gmail_com@myinstance

Dan itu juga telah menciptakan pengguna itu di VM saya. Dari antarmuka web, saya masuk ke VM dengan pengguna baru itu juga ( /home/username_gmail_com). Tentu saja, saya masih dapat mengakses data pengguna asli ( /home/username). Ketika saya menonaktifkan OS Login, antarmuka web masuk saya usernamelagi dan SSH dari klien lain dinonaktifkan.

  1. Mengapa nama pengguna berbeda saat mengaktifkan Login OS?
  2. Bisakah saya mengubah nama pengguna dengan Login OS diaktifkan?

Sunting

Ada tambahan pada dokumen yang menjelaskan dengan tepat pertanyaan ini. Periksa di sini: https://cloud.google.com/compute/docs/oslogin/ dan pada halaman yang saya sebutkan di atas sepanjang jalan di bagian bawah di bawah "Perilaku login yang diharapkan".

Wil Koetsier
sumber

Jawaban:

0

Jika Anda menambahkan kunci ssh Anda di dalam meta-data, Anda harus dapat mengakses akun root di dalam instance yang melakukan perintah ini:

sudo -i

Ketika di root Anda dapat mengakses folder / home / nama pengguna dan mentransfer file yang Anda butuhkan.


sumber
Terima kasih atas jawaban anda. Tentu saja saya bisa sudo untuk mentransfer file antara 2 pengguna saya, tapi itu cara yang merepotkan (terutama ketika itu bukan saya tetapi, katakanlah, fabfile). Sebagai gantinya, saya seharusnya bisa ssh ke pengguna pertama saya dan yang kedua seharusnya tidak pernah ada di tempat pertama. Dari konsol lokal saya, saya masuk dengan nama pengguna baru sementara konsol Google (antarmuka web) masuk dengan nama pengguna awal saya! Saya ingin memperbaikinya, sehingga saya bisa masuk dari konsol lokal saya menggunakan nama pengguna awal saya.
Wil Koetsier
Itu rumit ... Anda bisa mencoba menipu google metadata dengan memperbarui nama pengguna di akhir ssh-key Anda menggunakan nama pengguna pertama dan melihat apakah Anda masuk di dalam pengguna yang sama ...
Saya akan mencobanya. Sementara itu, Google telah memutuskan untuk masuk dengan nama pengguna baru juga - ??? itu ada hubungannya dengan Login OS diatur ke TRUE. Mengapa itu beralih ke nama pengguna lain adalah misteri bagi saya.
Wil Koetsier
Tidak berfungsi, tombol di Compute -> Metadata -> Keys tidak dapat diedit. Silakan lihat juga edit di pertanyaan saya.
Wil Koetsier
Anda tidak dapat mengedit kunci yang harus Anda tambahkan yang baru agar berfungsi
0

Sesuai dokumen github ini , paket Login OS (lingkungan tamu dalam instance) mengambil kunci SSH dari profil Login OS pengguna, dan membuatnya tersedia untuk sshd. Namun demikian, ia harus meminta server metadata untuk profilnya, dan memeriksa otorisasi akun pengguna (alamat email).

Untuk menjelaskan lebih lanjut, Jika menggunakan alat pihak ketiga untuk SSH, cara tradisional untuk menambahkan pengguna ke instance adalah dengan membuat dan menambahkan kunci publik untuk setiap pengguna ke metadata instance atau proyek, dan sesuai dengan dokumen ini .

Namun, Login OS dirancang untuk menggunakan Peran Mesin IAM untuk mengelola kunci SSH. Itu berarti bahwa setiap pengguna yang perlu diberikan akses SSH ke instance harus memiliki akun Google (email), akun tersebut harus menjadi anggota proyek, dan memiliki peran IAM Mesin Hitung yang tepat (misalnya compute.oslogin).

Jadi, ketika proses yang dijelaskan dalam tautan github di atas terjadi untuk pertama kalinya, itu menciptakan pengguna yang mewarisi format akun (email) seperti user_lastname_gmail_com. Untuk informasi lebih lanjut tentang Login OS Anda dapat memverifikasi dokumen ini

Fady
sumber
Terima kasih telah mengarahkan saya ke repo github. 2 dokumen lainnya sudah saya baca (berulang-ulang). Tidak ada yang menjelaskan mengapa format akun digunakan sebagai user_gmail_com bukan hanya pengguna. Fakta bahwa itu tidak disebutkan di mana pun, atau bagaimana memengaruhi nama pengguna yang digunakan oleh OS Login, atau mengapa itu dilakukan oleh OS Login tetapi tidak ketika OS Login dinonaktifkan (dengan akun google yang sama). Apakah kamu punya ide?
Wil Koetsier
@WilKoetsier Saat menggunakan Login OS Anda ingin mengontrol akses pengguna melalui IAM, sehingga Anda menambahkan setiap pengguna ke proyek. Anda tidak dapat mengubah nama pengguna karena sedang diekstrak dari IAM. Ketika Login OS dinonaktifkan, Anda dapat menggunakan nama pengguna yang Anda inginkan. Misalnya, jika menggunakan SSH dari peramban, dan bahkan jika Anda masuk ke proyek dengan akun Anda, Anda dapat “Ubah Nama Pengguna Linux” dengan mengeklik ikon pengaturan kanan atas di jendela. Informasi lebih lanjut tentang perilaku akun daemon di github
Anda juga dapat meminta untuk meningkatkan dokumen OS Login dengan mengklik tombol umpan balik di bagian atas halaman. Tetapi seperti yang saya sebutkan format email adalah standar, dan Anda tidak dapat mengubah perilaku itu. Dalam umpan balik Anda, Anda juga dapat meminta untuk memanipulasi nama pengguna saat menggunakan Login OS sebagai fitur baru. Selanjutnya, Anda dapat memposting ulang pertanyaan Anda di serverfault.com sebagai alternatif untuk Superuser
0

Saya mengajukan pertanyaan ini di sini dan mendapat jawaban yang jelas.

Mengapa nama pengguna berbeda antara Login OS diaktifkan dan dinonaktifkan?

Login OS mengikat akun pengguna Linux Anda dengan identitas Google Anda sehingga Anda memiliki nama pengguna yang konsisten, UID, dan informasi posix lainnya, di setiap VM yang Anda masuki.

[...]

Untuk mencegah konflik keunikan di berbagai organisasi ([email protected] dan [email protected]) nama domain dimasukkan secara default.

[...]

Ketika Login OS tidak diaktifkan, nama pengguna diatur dalam kunci SSH Anda yang tidak memiliki ikatan dengan identitas Google pengguna. Nama pengguna dibuat agar nyaman, dan tidak ada masalah khusus Login OS yang berlaku.

Dan bisakah saya memengaruhi nama pengguna saat Login OS diaktifkan?

Informasi posix tidak dapat diubah untuk identitas konsumen (pengguna non-G Suite).

Jadi tidak, saya tidak bisa, karena saya seorang individu dan bukan organisasi.

Pada akhirnya, saya memecahkan ketidaknyamanan ini yang disebabkan oleh saya dengan hanya membuat ulang server dengan OS Login diaktifkan - yang tentu saja merupakan salah satu kekuatan dari Compute Engine.

Wil Koetsier
sumber
0

Saya memiliki hak admin penuh untuk proyek saya dan saya memiliki masalah yang sama ketika saya mengatur "enable-oslogin" menjadi TRUE untuk mempercepat koneksi ke VM saya.

Setelah beberapa pencarian, saya menemukan halaman ini: https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys#locatesshkeys dan mengklik tombol "Buka halaman Metadata". Kemudian saya mengklik "Metadata"> "Edit". Saya mengatur nilai kunci "aktifkan-oslogin" ke FALSE.

Saya bisa masuk SSH (butuh sedikit lebih lama dari yang diharapkan) sebagai pengguna asli saya. Saya harap ini membantu!

cheevahagadog
sumber