2014-12-01 12 views
5

Tôi mới sử dụng Google Cloud. Tôi có hai dự án trong đám mây của Google và tôi cần sao chép các tệp từ một cá thể dự án và một cá thể dự án khác. Tôi cố gắng để sử dụng gcloud tính toán sao chép fileSao chép tệp giữa hai phiên bản đám mây của Google

Tôi nhận được dưới đây lỗi:

gcloud compute copy-files test.tgz --project stack-complete-343 instance-IP:/home/ubuntu --zone us-central1-a 

ERROR: (gcloud.compute.copy-files) Could not fetch instance: - Insufficient Permission 

tôi cần phải sao chép tập tin giữa hai trường hợp đó là trong các dự án khác nhau tương ứng

Trả lời

9

tôi đã có thể tái tạo của bạn vấn đề với một phiên bản VM hoàn toàn mới, nhận được cùng một lỗi. Dưới đây là một vài bước mà tôi đã thực hiện để khắc phục sự cố:

Đảm bảo bạn đã được xác thực và có quyền đối với cả hai dự án có cùng một tài khoản!

$ gcloud config list (nếu bạn thấy tài khoản dịch vụ @ developer.gserviceaccount.com, bạn cần phải chuyển sang tài khoản được kích hoạt trên cả hai dự án. Bạn có thể kiểm tra xem từ Console Devlopers> Quyền)

$ gcloud auth login (sao chép liên kết đến một cửa sổ mới, đăng nhập, sao chép và dán mã nó trở lại dấu nhắc)

$ gcloud compute copy-files test.tgz --project stack-complete-343 instance-IP:/home/ubuntu --zone us-central1-a (tôi cũng sẽ sử dụng tên ví dụ thay vì địa chỉ IP)

lệnh cuối cùng này nên cũng tạo ra các khóa ssh của bạn. Bạn sẽ thấy một cái gì đó như thế này, nhưng đừng lo lắng về việc nhập cụm mật khẩu:

CẢNH BÁO: [/ usr/bin/ssh-keygen] sẽ được thực thi để tạo khóa.

Tạo công cộng/rsa tin cặp khóa

Nhập cụm từ mật khẩu (trống không có cụm từ mật khẩu):

1

Đến tab điều khoản trên các ví dụ từ xa (ví dụ trường hợp bạn sẽ không chạy gcloud compute copy-files trên) . Sau đó, đi đến tài khoản dịch vụ và tạo một tài khoản mới, đặt tên cho nó và chọn hộp để lấy tệp khóa cho nó và để JSON được chọn. Tải lên tệp khóa đó từ máy tính cá nhân của bạn bằng cách sử dụng gcloud compute copy-files và tài khoản cá nhân của bạn vào cá thể cục bộ (nghĩa là máy bạn đang chạy SSH và chạy lệnh gcloud compute copy-files.) Sau đó, chạy tệp này từ cá thể cục bộ qua SSH. gcloud auth activate-service-account ACCOUNT --key-file KEY-FILE thay thế ACCOUNT bằng email giống như địa chỉ đã được tạo và KEY-FILE với đường dẫn tới tệp khóa bạn đã tải lên từ máy cá nhân của mình trước đó. Sau đó, bạn sẽ có thể truy cập vào cá thể thiết lập tài khoản. Các bước này phải được lặp lại trên mọi trường hợp bạn muốn sao chép tệp giữa. Nếu những hướng dẫn này không rõ ràng, hãy cho tôi biết và tôi sẽ cố gắng giúp đỡ.

0

Bạn không nên xác thực tài khoản của mình trên các phiên bản Compute Engine vì có thể hiển thị thông tin đăng nhập của bạn cho bất kỳ ai có quyền truy cập vào máy.

Thay vào đó, bạn có thể cho phép tài khoản dịch vụ của mình sử dụng API công cụ tính toán. Đầu tiên, dừng ví dụ. Khi đã dừng, bạn có thể chỉnh sửa các phạm vi truy cập API Cloud API từ bảng điều khiển. Sửa đổi Phạm vi công cụ Compute Engine từ Đã tắt đến Chỉ đọc.

Bạn sẽ chỉ có thể sử dụng lệnh copy-files ngay bây giờ. Điều này cho phép tài khoản dịch vụ của bạn truy cập API Công cụ Tính toán.

+0

phần mà bạn đã nói "Sửa đổi phạm vi Công cụ tính toán từ Bị vô hiệu thành Chỉ đọc." ... đó là nguồn vm về mục tiêu vm, cũng cần quyền của nó được modfied tôi tin, bạn có đồng ý không? Tôi sẽ thử nó trong một chút –

+0

Tôi không nghĩ như vậy, giả sử nó có cùng một tài khoản dịch vụ nó sẽ không sao. Làm thế nào nó đi? – Kat

+0

Tôi đã thử bằng cách cấp quyền truy cập đầy đủ cho tất cả api trên đám mây tới nguồn và điều đó không hoạt động ... không có cơ hội thay đổi mục tiêu này, nhưng hãy nghĩ về nó ... mục tiêu, đúng không? nếu không làm thế nào nó có thể "viết" trên máy mục tiêu? –

Các vấn đề liên quan