2012-07-09 37 views
125

Tôi đang cố gắng sử dụng Thiết bị đầu cuối Mac của mình để quét tệp từ Tải xuống (phpMyAdmin tôi đã tải xuống trực tuyến) vào phiên bản Amazon EC2 của tôi.Sử dụng scp để sao chép tệp sang cá thể Amazon EC2?

Lệnh tôi sử dụng là:

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 

Các lỗi tôi nhận: Cảnh báo: nộp danh tính myAmazonKey.pem không thể truy cập: Không có tập tin hoặc thư mục đó. Quyền bị từ chối (khóa công khai). mất kết nối

Cả myAmazonkey.pem tôi và phpMyAdmin-3.4.5-all-languages.tar.gz là trong Downloads, như vậy thì tôi đã cố gắng

scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 

và lỗi tôi nhận: Cảnh báo: Tệp nhận dạng /User/Hello_Kitty22/Downloads/myAmazonkey.pem không thể truy cập được: Không có tệp hoặc thư mục như vậy. Quyền bị từ chối (khóa công khai). mất kết nối

Mọi người có thể vui lòng cho tôi biết cách khắc phục sự cố của tôi không?

p.s. có một bài tương tự: scp (secure copy) to ec2 instance without password nhưng nó không trả lời câu hỏi của tôi.

+0

Tôi cảm thấy như khi tôi bắt đầu cá thể Amazon trực tuyến, tôi không thể truy cập các tệp cục bộ của mình trong Tải xuống nữa – HoKy22

Trả lời

255

Cố gắng xác định người dùng có ec2-user, ví dụ

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 

Xem Connecting to Linux/UNIX Instances Using SSH.

+0

cảm ơn rất nhiều, hoạt động tuyệt vời :) – ilight

+8

hoạt động tuyệt vời. Lưu ý rằng người dùng mặc định của người dùng của bạn có thể là "ubuntu" nếu bạn đang chạy một cá thể ubuntu. – RussellStewart

+0

tất nhiên sao chép vào/có thể không hoạt động. Cảm ơn vì đã khai sáng! – dnuske

0

Kiểm tra quyền trên tệp .pem ... openssh thường không thích các khóa riêng có thể đọc được trên thế giới và sẽ không thành công (iir, scp không thực hiện công việc tuyệt vời khi cung cấp phản hồi này cho người dùng).

Bạn có thể chỉ cần ssh với khóa đó vào máy chủ AWS của mình không?

+0

Có, tôi có thể ssh với khóa đó tới máy chủ AWS của tôi. Trong thực tế, vấn đề tôi gặp phải là, tôi đang ở trên máy chủ Amazon (thông qua ssh), vì vậy khi tôi làm cd, tôi chỉ có thể xem các tệp trên máy chủ Amazon của tôi chứ không phải thư mục Mac Downloads cục bộ của tôi, nơi tôi đã lưu tệp pem của mình . Tôi chỉ có thể cd vào thư mục Tải xuống Mac cục bộ của mình khi tôi thoát khỏi máy chủ ec2 của mình. Nhưng nếu tôi thoát khỏi máy chủ ec2 của mình, tôi không thể tải tệp phpMyAdmin lên máy chủ ec2 của mình. Sự cho phép của pem của tôi là 400, tôi nghĩ điều đó là tốt. – HoKy22

+1

Cảm ơn bạn rất nhiều vì sự giúp đỡ, tôi đã tìm thấy vấn đề của tôi bằng câu hỏi cuối cùng bạn đã hỏi. Có vẻ như tôi có thể ssh hoặc scp, không phải hai với nhau. – HoKy22

+0

cảm ơn gợi ý hellokitty22. Tôi đã có hai thiết bị đầu cuối mở một cho ssh và một cho scp quá. – donebizkit

8

Bạn nên ở trên máy địa phương để thử lệnh scp ở trên.

Trên máy tính thử địa phương của bạn:

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 
-1

Tôi sẽ sử dụng:

scp -i "path to .pem file" "file to be copeide from local machine" [email protected]: 'destination folder to copy file on remote machine'

+2

đây chính xác là điều người đó nói họ đã thử. –

15

thư mục thứ hai là đích đến của bạn, không sử dụng tên máy chủ ở đó. Nói cách khác, bạn không cần đề cập đến tên máy cho máy mà bạn hiện đang sử dụng.

scp -i /path/to/your/.pemkey -r /copy/from/path [email protected]:/copy/to/path 

-r nếu đó là thư mục.

13

Khóa của bạn không được hiển thị công khai để SSH hoạt động. Sử dụng lệnh này nếu cần thiết:

chmod 400 yourPublicKeyFile.pem 
2
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile [email protected]:PATH OF SERVER/serverdirectory 
0

Trước tiên, bạn nên thay đổi phương thức .pem tập tin từ đọc và chế độ viết để chế độ chỉ đọc.Điều này có thể được thực hiện chỉ bằng một lệnh duy nhất trong thiết bị đầu cuối sudo chmod 400 your_public_key.pem

4

Tôi có chính xác cùng một vấn đề, giải pháp của tôi là để

scp -i /path/pem -r /path/file/ [email protected] aws dns name: (để trống ở đây)

một khi bạn thực hiện phần này, nhận được vào ssh máy chủ và tệp mv đến vị trí mong muốn

0

Tôi đã thử tất cả các đề xuất được đề cập ở trên và không có tác dụng nào. Tôi đã kết thúc phiên bản hiện tại, khởi chạy một phiên bản khác và lặp lại cùng một quy trình chính xác. Lần này không có vấn đề gì. Đôi khi nó có thể là lỗi của ami từ xa.

0

Quá trình sử dụng SCP để sao chép tệp từ máy cục bộ sang thể hiện AWS EC2 Linux được đề cập từng bước (bao gồm các điểm được đề cập bên dưới) trong this video.

Để khắc phục vấn đề cụ thể này với việc sử dụng SCP:

  1. Bạn cần phải xác định người dùng Linux chính xác. Từ Amazon:

    • Đối với Amazon Linux, tên người dùng là người dùng ec2.
    • Đối với RHEL, tên người dùng là ec2-user hoặc root.
    • Đối với Ubuntu, tên người dùng là ubuntu hoặc root.
    • Đối với Centos, tên người dùng là centos.
    • Đối với Fedora, tên người dùng là người dùng ec2.
    • Đối với SUSE, tên người dùng là ec2-user hoặc root.
    • Nếu không, nếu người dùng ec2 và root không hoạt động, hãy kiểm tra với nhà cung cấp AMI của bạn.
  2. Khóa cá nhân của bạn không được hiển thị công khai. Chạy lệnh sau để chỉ người dùng gốc có thể đọc tệp.

    chmod 400 /path/to/yourKeyFile.pem 
    
1

Dưới đây là các chi tiết về những gì làm việc cho một EC2 dụ:

scp -i /path/to/whatever.pem /users/me/path-to-file [email protected]:~ 

vài ghi chú cho đầu:

  1. Lưu ý các khoảng trống giữa ba thông số cho sau số -i
  2. scp là viết tắt của giao thức truyền an toàn. Biết các từ giúp dễ nhớ lệnh hơn.
  3. -i quy định rằng bạn cần cung cấp tệp .pem làm thông số tiếp theo. Nếu không có số -i, bạn không cần số .pem.
  4. Lưu ý :~ ở cuối điểm đến cho phiên bản EC2.
Các vấn đề liên quan