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 [email protected]:/

Password:

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

Hoff
sumber
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 [email protected]:/
Hoff
sumber
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 [email protected]: / home / ec2-user
siliconrockstar
1
@ siliconrockstar Pernyataan Anda [email protected]:/home/ec2-usermudah diganti dengan [email protected]:./ ./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
Syed Priom
sumber
(-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 [email protected]:/home/ec2-user
Renato Coutinho
sumber
20

Menjadikan komentar siliconerockstar sebagai jawaban karena itu berhasil untuk saya

scp -i kp1.pem ./file.txt [email protected]:/home/ec2-user
joseph.hainline
sumber
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.

Dele
sumber
14

menyalin file dari server lokal ke server jauh

sudo scp -i my-pem-file.pem ./source/test.txt [email protected]:~/destination/

menyalin file dari server jauh ke mesin lokal

sudo scp -i my-pem-file.pem [email protected]:~/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

Jamil Noyda
sumber
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 [email protected]:~/

beri tahu saya jika itu tidak berhasil

Yatender Singh
sumber
scp -i / Pengguna / Pengguna / Unduhan / myfile.pem -r [email protected]: ~ / ~ / 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

Barkat
sumber
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!

fall14123
sumber
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.

Terima kasih
sumber
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.

Shawn
sumber
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
dheeraj kumar
sumber
0

tulis kode ini

scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim [email protected]:/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.

庄景鹏
sumber
-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.
amar essa
sumber