scp (salinan aman) ke contoh EC2 tanpa kata sandi


404

Saya memiliki instance EC2 yang berjalan (FreeBSD 9 AMI ami-8cce3fe5), dan saya dapat ssh ke dalamnya menggunakan file kunci saya yang dibuat amazon tanpa prompt kata sandi, tidak ada masalah.

Namun, ketika saya ingin menyalin file ke instance menggunakan scp saya diminta untuk memasukkan kata sandi:

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

Password:

Adakah ide mengapa hal ini terjadi / bagaimana hal itu dapat dicegah?


Apakah Anda menggunakan pengidentifikasi yang sama persis untuk pengguna dan host?
Lynch

Saya tidak yakin saya mengerti apa yang Anda maksud dengan pengidentifikasi, dapatkah Anda menjelaskan?
Hoff

jika untuk satu koneksi Anda menggunakan alamat IP dan untuk yang lain Anda menggunakan nama itu tidak akan berfungsi. Saya baru saja melihat bahwa Anda menggunakan -iopsi untuk memberikan identitas Anda. Mungkin Anda juga harus menunjukkan perintah yang Anda gunakan untuk masuk dengan ssh.
Lynch

terima kasih lynch, temukan jawabannya!
Hoff

Jawaban:


804

Saya menemukan jawabannya. Saya memiliki argumen dalam urutan yang salah. Ini bekerja:

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

14
dari yang mengerti cara terhubung ke EC2 melalui ssh, cukup ubah sshperintah scpdan tambahkan nama file setelah file pem.
Claudio Santos

11
Karena jawaban ini agak lama, contoh yang lebih baru dari contoh EC2 baru saya: scp -i kp1.pem ./file.txt ec2-user@1.2.3.4: / home / ec2-user
siliconrockstar

1
@ siliconrockstar Pernyataan Anda ec2-user@1.2.3.4:/home/ec2-usermudah diganti dengan ec2-user@1.2.3.4:./ ./FTW yang lebih pendek dan lebih mudah !
brock

2
Komentar yang sangat terlambat, tetapi apa yang @ClaudioSantos sarankan tidak bekerja dengan tepat jika Anda menggunakan port non-standar. Ini -p untuk ssh dan -P untuk scp.
Inukshuk

1
Saya dapat menggunakan file * .PEM saya untuk ssh ke EC2. Namun, ketika saya ingin menggunakannya untuk SCP file, itu memberi saya kesalahan "Izin ditolak"! Bagaimana saya bisa memecahkan masalah ini?
AleX_

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

(-r) parameter tidak diperlukan tetapi diperlukan untuk menghapus (/) dari ujung jalur jauh. Teladan Anda bekerja untuk saya, Terima kasih banyak
Abbas

35

Saya telah menggunakan perintah di bawah ini untuk menyalin dari linux lokal Centos 7 ke 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 .

Nama file tidak boleh berada di antara file pem dan string ec2-user - itu tidak berfungsi. Ini juga memungkinkan Anda untuk memesan nama file yang disalin.


14

menyalin file dari server lokal ke server jauh

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

menyalin file dari server jauh ke mesin lokal

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

Jadi pada dasarnya sintaksnya adalah: -

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

-iadalah untuk identity_file


8

mari kita asumsikan bahwa file pem Anda dan somefile.txt yang ingin Anda kirim ada di folder Unduhan

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

beri tahu saya jika itu tidak berhasil


scp -i / Pengguna / Pengguna / Unduhan / myfile.pem -r ubuntu@my.ect.id.amazonaws.com: ~ / ~ / Desktop / jika Anda ingin mentransfer file dari server ke lokal
Yatender Singh

2
Terima kasih saya mendapat "akses ditolak" dengan :/di akhir tetapi dengan :~/bekerja
kapulaga

ya karena: / adalah folder root dan: ~ / adalah folder pengguna jadi jika Anda adalah pengguna root maka: / atau: ~ / semuanya akan bekerja dan jika Anda bukan pengguna root maka hanya: ~ / Anda harus menggunakan.
Yatender Singh

3

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

ini akan sangat membantu kalian semua


2

hadoopec2cluster.pemFile saya adalah satu-satunya di direktori di mac lokal saya, tidak bisa scp ke aws menggunakan scp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~.

Menyalin hadoopec2cluster.pem ke hadoopec2cluster_2.pem dan kemudian scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~. Voila!


2

Saya menutup telepon ini karena saya menentukan file kunci publik saya di

scp -i [private key file path]

Ketika saya menangkap kesalahan itu dan mengubahnya ke jalur kunci pribadi sebagai gantinya, saya siap.


2

Dalam kasus Anda, pengguna roottidak akan memiliki masalah. Tetapi dalam kasus-kasus tertentu di mana Anda diminta untuk masuk di bawah SSH sebagai pengguna yang berbeda, pastikan direktori yang Anda tuju scpmemiliki izin yang memadai untuk pengguna yang sedang Anda SSH-ing.


1

Untuk menggunakan PSCP, Anda memerlukan kunci pribadi yang Anda buat dalam Mengubah Kunci Pribadi Anda Menggunakan PuTTYgen. Anda juga memerlukan alamat DNS publik dari instance Linux Anda

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

0

tulis kode ini

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

Jika Anda memiliki kunci SSH dengan akses ke server tujuan dan server sumber tidak, menambahkan -o "ForwardAgent = yes" akan memungkinkan Anda untuk meneruskan agen SSH Anda ke server sumber sehingga dapat menggunakan kunci SSH Anda untuk terhubung ke server tujuan.


-6

Baru diuji:

Jalankan perintah berikut:

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

Kemudian:

  1. buat ami (gambar ec2).
  2. luncurkan dari ami baru (gambar) dari langkah no 2 memilih kunci baru.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.