GCP - sudo hoạt động trong GoogleCloudShell nhưng không hoạt động khi tôi ssh vào vm


0

Tôi đã tạo một Google Compute Engine VM hoàn toàn mới (Debian 9) và mở một vỏ cho nó bằng vỏ GoogleCloud. tôi có thể sudo từ cửa sổ trình duyệt shell đó.

Sau đó tôi thiết lập các phím ssh và ssh vào vm. Để thảo luận, tên người dùng của tôi là "user123". Tôi ssh vào GCP vm của tôi bằng cách sử dụng:

ssh user123@1.2.3.4

Trong đó 1.2.3.4 là địa chỉ IP bên ngoài GCP của tôi. Sau đó tôi đăng nhập.

Vì vậy, là người dùng user123 trong GoogleCloudShell sudo hoạt động, nhưng khi đăng nhập qua ssh như user123, Tôi được nhắc nhập mật khẩu.

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:

Đương nhiên, tôi không muốn hoặc không cần thiết lập mật khẩu, tôi cần lấy sudo để cho phép điều này user123 tài khoản người dùng để sudo. Nhưng nó hoạt động khi đăng nhập vào GoogleCloudShell .... Hum ... Tôi sẽ theo dõi nó nhưng đó là câu hỏi của tôi.

LƯU Ý: Vì tôi có root trong GoogleCloudShell (thông qua sudo), tôi sẽ có thể tìm thấy những gì tôi cần làm và khắc phục điều này.

Bước tiếp theo tôi cần thực hiện để cho phép sudo hoạt động khi đăng nhập qua ssh là gì?


Tôi không chắc điều gì đã xảy ra, nhưng tôi thiết lập một VM khác và mọi thứ hoạt động tốt. tôi có thể sudo sau khi tôi ssh vào vm bằng ssh user123 @ gcp-host cũng như từ GoogleCloudShell. Tôi có thể xóa câu hỏi này nếu không ai thấy nó hữu ích.
PatS

Hum ... Cốt truyện dày lên. Một cái gì đó đã xóa tập tin ~ / .ssh / ủy quyền của tôi và khi tôi tạo lại nó. Tôi không thể sudo khi tôi ssh vào GCP vm. Tôi phải làm điều gì đó sai cách (một cách mà GCP không thích).
PatS

Tôi đã đóng GoogleCloudShell và mở lại. Khi tôi làm điều đó, môi trường GCP đã thêm hai khóa ssh GCP (để hỗ trợ GoogleCloudShell, tôi đoán vậy). Khi các khóa đó tồn tại, tôi có thể sudo khi đăng nhập từ ssh .
PatS

Câu trả lời:


1

Tôi sẽ cho bạn 2 câu trả lời.

Đầu tiên, shell shell đang quản lý siêu dữ liệu cá thể cho bạn đằng sau hậu trường và cho phép sudo không mật khẩu cho tất cả người dùng được thêm vào dự án theo cách này. Sử dụng google để thiết lập người dùng của bạn

https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys https://cloud.google.com/compute/docs/instances/managing-instance-access

Thêm tài khoản người dùng bạn muốn thông qua bảng điều khiển dự án. Điều này sẽ tuyên truyền người dùng đó đến tất cả các máy chủ trong dự án của bạn.

Thứ hai, những gì bạn muốn là thiết lập sudo không mật khẩu. Bạn có thể (sử dụng visudo) chỉnh sửa / etc / sudoers hoặc tạo một tệp mới trong /etc/sudoers.d và thêm một dòng như thế này:

user123       ALL = (ALL) NOPASSWD: ALL

bạn có thể thấy rằng google đang làm điều đó bằng cách thành viên nhóm trong nhóm google-sudoers

timmy@instance-1:~$ sudo cat /etc/sudoers.d/google_sudoers 
%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL
timmy@instance-1:~$ id
uid=1000(timmy) gid=1001(timmy) groups=1001(timmy),4(adm),30(dip),44(video),46(plugdev),1000(google-sudoers)

0

Sau khi tạo công cụ tính toán GCP, bạn không cần phải làm gì đặc biệt để sudo hoạt động từ ssh. Bạn rõ ràng cần phải sử dụng bảng điều khiển GCP và thêm các khóa của bạn như @TimmyBrowne đề cập trong bài đăng của mình. Xem https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys .

Sau khi khóa công khai ssh của bạn được nhập vào phiên bản GCP Compute Engine, bạn có thể ssh vào cá thể của bạn. Nhưng bạn cần sử dụng đúng tên người dùng.

Ví dụ: nếu tên người dùng GCP của tôi là fredsmith và IP bên ngoài GCP của tôi là 5.6.7.8, thì lệnh ssh của tôi sẽ giống như sau:

ssh fredsmith@5.6.7.8

Và rõ ràng, khóa ssh riêng của bạn cần khớp với khóa chung bạn đưa vào siêu dữ liệu ssh cho ví dụ của bạn.

Sau khi đăng nhập, bạn có thể chạy sudo và nó hoạt động vì GCP đã thiết lập trường hợp này với thông tin đăng nhập của bạn (fredsmith) và đưa bạn (fredsmith) vào các nhóm cần thiết để sudo hoạt động mà GCP dường như là sudoers.

Nếu bạn muốn tạo một người dùng khác và cho phép người dùng đó có các đặc quyền sudo, hãy xem câu trả lời @TimmyBrowne khi anh ta mô tả điều này.

Tôi vẫn không tích cực tại sao tôi có kết quả không nhất quán, đôi khi tôi có thể sudo và những lần khác tôi không thể vì tệp ủy quyền của tôi đã bị xóa, nhưng tôi không có đủ thông tin để theo đuổi điều này hơn nữa.

Vì Timmy Browne đã trả lời câu hỏi của tôi khi anh ấy hiểu nó, và nó có vẻ đúng. Tôi sẽ cung cấp cho anh ấy tín dụng cho câu trả lời này, nhưng muốn đăng câu trả lời của tôi để nếu những người khác thấy hành vi tương tự, họ có thể đưa ra câu trả lời này và hy vọng chúng tôi có thể theo dõi nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.