Saya membuat VM Compute Engine VM (Debian 9) yang baru dan membuka sebuah shell dengan menggunakan shell GoogleCloud. Saya dapat sudo
dari jendela shell browser.
Saya kemudian mengatur kunci ssh dan ssh ke vm. Demi diskusi, nama pengguna saya adalah "user123". Saya ssh ke GCP vm saya menggunakan:
Di mana 1.2.3.4 adalah alamat IP eksternal GCP saya. Saya kemudian login.
Jadi sebagai pengguna user123
di GoogleCloudShell sudo
berfungsi, tetapi ketika masuk melalui ssh sebagai user123
, saya diminta untuk memasukkan kata sandi.
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for user123:
Secara alami, saya tidak ingin atau perlu mengatur kata sandi, saya perlu mendapatkan sudo untuk memungkinkan user123
akun pengguna ini untuk sudo. Tapi itu berfungsi ketika masuk ke GoogleCloudShell .... Hum ... Saya akan melacaknya tapi itu pertanyaan saya.
CATATAN: Karena saya memiliki root di GoogleCloudShell saya (via sudo), saya harus dapat menemukan apa yang perlu saya lakukan dan memperbaikinya.
Apa langkah selanjutnya yang harus saya ambil untuk memungkinkan sudo bekerja ketika masuk melalui ssh?
sudo
setelah saya ssh ke vm menggunakan ssh user123 @ gcp-host dan juga dari GoogleCloudShell. Saya mungkin menghapus pertanyaan ini jika tidak ada yang merasa berguna.sudo
ketika login dari ssh .Jawaban:
Saya akan memberikan 2 jawaban.
Pertama, cloud shell mengelola metadata instance untuk Anda di belakang layar, dan memungkinkan sudo tanpa kata sandi untuk semua pengguna yang ditambahkan ke proyek dengan cara ini. Gunakan google untuk mengatur pengguna Anda
https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys https://cloud.google.com/compute/docs/instan/managing-instance-access
Tambahkan akun pengguna yang Anda inginkan melalui konsol proyek. Ini akan menyebarkan pengguna itu ke semua host di proyek Anda.
Kedua, yang Anda inginkan adalah mengatur sudo tanpa kata sandi. Anda dapat (menggunakan visudo) mengedit / etc / sudoers atau membuat file baru di bawah /etc/sudoers.d dan menambahkan baris seperti ini:
Anda dapat melihat bahwa google melakukannya dengan keanggotaan grup di grup google-sudoers
sumber
Setelah membuat mesin komputasi GCP Anda tidak perlu melakukan sesuatu yang istimewa untuk membuat sudo bekerja dari ssh. Anda jelas perlu menggunakan konsol GCP dan menambahkan kunci Anda sebagai @TimmyBrowne menyebutkan dalam posnya. Lihat https://cloud.google.com/compute/docs/inances/adding-removing-ssh-keys .
Setelah kunci publik ssh Anda dimasukkan ke mesin instance GCP Compute, Anda bisa ssh ke mesin instance Anda. Tetapi Anda harus menggunakan nama pengguna yang benar.
Misalnya, jika nama pengguna GCP saya adalah fredsmith, dan IP eksternal GCP saya adalah 5.6.7.8, maka perintah ssh saya akan terlihat seperti ini:
ssh [email protected]
Dan jelas, kunci ssh pribadi Anda harus cocok dengan kunci publik yang Anda masukkan ke dalam meta-data ssh untuk contoh Anda.
Setelah masuk, Anda dapat menjalankan sudo dan berfungsi karena GCP telah menyiapkan instance ini dengan kredensial Anda (fredsmith) dan telah menempatkan Anda (fredsmith) ke dalam grup yang diperlukan sehingga sudo bekerja yang untuk GCP tampaknya adalah google-sudoers.
Jika Anda ingin membuat pengguna lain dan memungkinkan pengguna itu memiliki hak istimewa sudo, maka lihat @TimmyBrowne menjawab ketika ia menjelaskan ini.
Saya masih tidak yakin mengapa saya mendapatkan hasil yang tidak konsisten di mana kadang-kadang saya bisa sudo dan lain kali saya tidak bisa karena file otor_keys saya dihapus, tetapi saya tidak punya cukup informasi untuk melanjutkan ini lebih jauh.
Karena Timmy Browne menjawab pertanyaan saya ketika dia memahaminya, dan sepertinya itu benar. Saya akan memberinya pujian untuk jawaban ini, tetapi ingin memposting jawaban saya sehingga jika orang lain melihat perilaku yang sama ini mereka dapat meningkatkan jawaban ini dan mudah-mudahan kita dapat melacaknya.
sumber