scp (bản sao an toàn) sang thể hiện ec2 mà không cần mật khẩu


404

Tôi có một phiên bản EC2 đang chạy (FreeBSD 9 AMI ami-8cce3fe5) và tôi có thể ssh vào nó bằng tệp khóa do amazon tạo mà không cần nhắc mật khẩu, không vấn đề gì.

Tuy nhiên, khi tôi muốn sao chép một tập tin vào ví dụ bằng scp, tôi được yêu cầu nhập mật khẩu:

scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/

Password:

Bất kỳ ý tưởng tại sao điều này đang xảy ra / làm thế nào nó có thể được ngăn chặn?


Bạn có đang sử dụng cùng một định danh cho người dùng và máy chủ không?
Lynch

Tôi không chắc tôi hiểu ý của bạn bằng định danh, bạn có thể giải thích không?
Hoff

nếu đối với một kết nối bạn sử dụng một địa chỉ IP và đối với kết nối khác bạn sử dụng tên thì nó sẽ không hoạt động. Tôi chỉ thấy rằng bạn sử dụng -itùy chọn để cung cấp danh tính của bạn. Có thể bạn cũng nên hiển thị lệnh bạn sử dụng để đăng nhập bằng ssh.
Lynch

cảm ơn lynch, đã tìm ra nó!
Hoff

Câu trả lời:


804

Tôi đã hiểu rồi. Tôi đã có các đối số theo thứ tự sai. Những công việc này:

scp -i mykey.pem somefile.txt root@my.ec2.id.amazonaws.com:/

14
từ những người hiểu cách kết nối với ec2 thông qua ssh, chỉ cần thay đổi sshlệnh scpvà thêm tệp tên sau tệp pem.
Claudio Santos

11
Vì câu trả lời này hơi cũ, một ví dụ gần đây hơn từ ví dụ EC2 mới của tôi: scp -i kp1.pem ./file.txt ec2-user@1.2.3.4: / home / ec2-user
siliconrockstar

1
@siliconrockstar Tuyên bố của bạn ec2-user@1.2.3.4:/home/ec2-userdễ dàng được thay thế bằng ec2-user@1.2.3.4:./ ./FTW ngắn hơn và dễ dàng hơn !
brock

2
Một nhận xét rất muộn, nhưng những gì @ClaudioSantos đề xuất không hoạt động chính xác nếu bạn đang sử dụng một cổng không chuẩn. Đó là -p cho ssh và -P cho scp.
Inukshuk

1
Tôi có thể sử dụng tệp * .PEM của mình để ssh vào ec2. tuy nhiên, khi tôi muốn sử dụng nó cho SCP một tệp, nó sẽ báo lỗi "Cấp phép bị từ chối"! Làm sao tôi có thể giải quyết việc này?
AleX_

58
scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

Tham số (-r) là không bắt buộc nhưng bắt buộc phải xóa (/) khỏi cuối đường dẫn từ xa. Ví dụ của bạn đã làm việc cho tôi, Cảm ơn rất nhiều
Abbas

35

Tôi đã sử dụng lệnh dưới đây để sao chép từ linux Centos 7 sang AWS EC2.

scp -i user_key.pem file.txt ec2-user@my.ec2.id.amazonaws.com:/home/ec2-user


19
scp -i ~/.ssh/key.pem ec2-user@ip:/home/ec2-user/file-to-copy.txt .

Tên tệp không nên nằm giữa tệp pem và chuỗi người dùng ec2 - không hoạt động. Điều này cũng cho phép bạn bảo lưu tên của tệp được sao chép.


14

sao chép một tập tin từ một máy chủ cục bộ đến một máy chủ từ xa

sudo scp -i my-pem-file.pem ./source/test.txt ec2-user@1.2.3.4:~/destination/

sao chép một tập tin từ một máy chủ từ xa vào một máy cục bộ

sudo scp -i my-pem-file.pem ec2-user@1.2.3.4:~/source/of/remote/test.txt ./where/to/put

Vì vậy, cú pháp cơ bản là: -

scp -i my-pem-file.pem username@source:/location/to/file username@destination:/where/to/put

-idành cho danh tính_file


8

giả sử rằng tệp pem của bạn và somefile.txt bạn muốn gửi nằm trong thư mục Tải xuống

scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/

cho tôi biết nếu nó không hoạt động


scp -i /Users/Username/Doads/myfile.pem -r ub Ubuntu@my.ect.id.amazonaws.com: ~ / ~ / Desktop / trong trường hợp bạn muốn chuyển tệp từ máy chủ sang cục bộ
Yatender Singh

2
Cảm ơn tôi đã "truy cập bị từ chối" :/vào cuối nhưng với :~/nó hoạt động
thảo quả

yeah bởi vì: / là thư mục gốc và: ~ / là thư mục người dùng nên nếu bạn là người dùng root thì: / hoặc: ~ / mọi thứ sẽ hoạt động và nếu bạn không phải là người dùng root thì chỉ: ~ / bạn phải sử dụng.
Yatender Singh

3

scp -i /home/barkat/Downloads/LamppServer.pem lampp_x64_12.04.tar.gz

điều này sẽ rất hữu ích cho tất cả các bạn


2

hadoopec2cluster.pemTệp của tôi là tệp duy nhất trong thư mục trên máy Mac cục bộ của tôi, không thể sử dụng tệp này để sử dụng scp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~.

Đã sao chép hadoopec2cluster.pem thành hadoopec2cluster_2.pem và sau đó scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~. Voila!


2

Tôi đã gác máy vì tôi đang chỉ định tệp khóa công khai của mình trong

scp -i [private key file path]

Thay vào đó, khi tôi bắt lỗi đó và thay đổi nó thành đường dẫn khóa riêng, tôi đã sẵn sàng.


2

Trong trường hợp của bạn, người dùng rootsẽ không có bất kỳ vấn đề. Nhưng trong một số trường hợp nhất định khi bạn bắt buộc phải đăng nhập bằng SSH với tư cách là một người dùng khác, hãy đảm bảo thư mục bạn đang scpsử dụng có đủ quyền cho người dùng mà bạn đang sử dụng SSH.


1

Để sử dụng PSCP, bạn cần khóa riêng mà bạn đã tạo trong Chuyển đổi khóa riêng của mình bằng PuTTYgen. Bạn cũng cần địa chỉ DNS công khai của phiên bản Linux của bạn

pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt

0

viết mã này

scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim root@192.168.2.228:/root/

Nếu bạn có khóa SSH có quyền truy cập vào máy chủ đích và máy chủ nguồn thì không, việc thêm -o "ForwardAgent = yes" sẽ cho phép bạn chuyển tiếp tác nhân SSH của mình đến máy chủ nguồn để nó có thể sử dụng khóa SSH của bạn để kết nối với máy chủ đích.


-6

Chỉ cần thử nghiệm:

Chạy lệnh sau:

sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub

Sau đó:

  1. tạo ami (hình ảnh của ec2).
  2. khởi chạy từ ami mới (hình ảnh) từ bước 2 không chọn khóa mới.
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.