Menggunakan scp untuk menyalin file ke instance Amazon EC2?


198

Saya mencoba menggunakan Terminal Mac saya untuk scp file dari Unduhan (phpMyAdmin saya unduh online) ke instance Amazon EC2 saya.

Perintah yang saya gunakan adalah:

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

Kesalahan yang saya dapatkan: Peringatan: File identitas myAmazonKey.pem tidak dapat diakses: Tidak ada file atau direktori tersebut. Izin ditolak (publickey). kehilangan koneksi

Baik myAmazonkey.pem dan phpMyAdmin-3.4.5-all-languages.tar.gz saya ada di Unduhan, jadi saya mencoba

scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

dan kesalahan yang saya dapatkan: Peringatan: File identitas / Pengguna / Halo_Kitty22/Downloads / myAmazonkey.pem tidak dapat diakses: Tidak ada file atau direktori tersebut. Izin ditolak (publickey). kehilangan koneksi

Adakah yang bisa tolong beri tahu saya cara memperbaiki masalah saya?

ps ada posting serupa: scp (salinan aman) ke contoh EC2 tanpa kata sandi tetapi tidak menjawab pertanyaan saya.


Saya merasa ketika saya memulai contoh Amazon saya secara online, saya tidak dapat lagi mengakses file lokal saya di Unduhan
HoKy22

Jawaban:


376

Coba tentukan pengguna yang akan ec2-user, misalnya

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz ec2-user@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

Lihat Menghubungkan ke Linux / UNIX Instances Menggunakan SSH .


16
bekerja dengan baik. Perhatikan bahwa pengguna default pengguna Anda mungkin "ubuntu" jika Anda menjalankan instance ubuntu.
RussellStewart

tentu saja menyalin ke / mungkin tidak berfungsi. Terima kasih telah mencerahkan!
dnuske

@DanielDropik Saya tidak tahu apakah Anda bercanda atau tidak ... tetapi :/akan mencoba menyalin folder ke root sistem, yang akan memberikan kesalahan izin pada semua mesin tanpa menjalankan sudo (atau sebagai root).
Dobz

mengapa dikatakan Tolong login sebagai pengguna "ubuntu" daripada "root" pengguna. apa yang harus saya lakukan untuk salinan
Arjun

dalam kasus saya saya menggunakan pengguna tetapi, perbedaannya saya tambahkan dns publik mec2-50-17-16-67.compute-1.amazonaws.com alih-alih nama domain
shareef

31

direktori kedua adalah tujuan target Anda, jangan gunakan nama server di sana. Dengan kata lain, Anda tidak perlu menyebutkan nama mesin untuk mesin yang Anda gunakan saat ini.

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

-r jika itu direktori.


19

Kunci Anda tidak boleh dapat dilihat oleh publik agar SSH berfungsi. Gunakan perintah ini jika perlu:

chmod 400 yourPublicKeyFile.pem

Anda menyelamatkan kakak saya
Mayukh Sarkar

13

Anda harus berada di komputer lokal Anda untuk mencoba perintah scp di atas.

Di mesin lokal Anda coba:

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

9

Berikut ini rincian yang berfungsi untuk instance EC2 :

scp -i /path/to/whatever.pem /users/me/path-to-file ec2-user@ec2-55-55-555-555.compute-1.amazonaws.com:~

Beberapa catatan untuk permulaan:

  1. Perhatikan spasi antara tiga parameter yang diberikan setelah -i
  2. scpsingkatan protokol salinan aman. Mengetahui kata-kata membuatnya lebih mudah untuk mengingat perintah.
  3. -imenentukan bahwa Anda perlu memberikan .pemfile sebagai param berikutnya. Jika tidak ada -i, maka Anda tidak perlu .pem.
  4. Catat :~di akhir tujuan untuk instance EC2.

6

Saya memiliki masalah yang persis sama, solusi saya adalah untuk

scp -i /path/pem -r /path/file/ ec2-user@public aws dns name: (biarkan kosong di sini)

setelah Anda selesai bagian ini, masuk ke server ssh dan file mv ke lokasi yang diinginkan


5
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory

3

Format SCP di bawah ini berfungsi untuk saya

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt

SampleFile.txt : Ini akan menjadi path dari direktori root Anda (Dalam kasus saya, / home / ubuntu). dalam kasus saya file yang ingin saya unduh ada di / var / www

SampleFile2.txt : Ini akan menjadi path dari path root mesin Anda (Dalam kasus saya, / home / MyPCUserName)

Jadi, saya harus menulis perintah di bawah ini

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/../../var/www/Filename.zip ~/Downloads

2

Kirim file dari Lokal ke Server:

scp -i .ssh / awsinstance.pem my_local_file ubuntu@XX.XXX.XXX.XXX: / home / ubuntu

Unduh file dari Server ke Lokal:

scp -i .ssh / awsinstance.pem ubuntu@XX.XXX.XXX.XXX: / home / ubuntu / server_file.


1

Proses menggunakan SCP untuk menyalin file dari mesin lokal ke instance AWS EC2 Linux dibahas langkah demi langkah (termasuk poin yang disebutkan di bawah) dalam video ini .

Untuk memperbaiki masalah khusus ini dengan menggunakan SCP:

  1. Anda perlu menentukan pengguna Linux yang benar. Dari Amazon :

    • Untuk Amazon Linux, nama pengguna adalah ec2-user.
    • Untuk RHEL, nama pengguna adalah ec2-user atau root.
    • Untuk Ubuntu, nama pengguna adalah ubuntu atau root.
    • Untuk Centos, nama pengguna adalah centos.
    • Untuk Fedora, nama pengguna adalah ec2-user.
    • Untuk SUSE, nama pengguna adalah ec2-user atau root.
    • Jika tidak, jika pengguna dan root ec2 tidak berfungsi, tanyakan penyedia AMI Anda.
  2. Kunci pribadi Anda tidak boleh terlihat oleh publik. Jalankan perintah berikut ini sehingga hanya pengguna root yang dapat membaca file.

    chmod 400 /path/to/yourKeyFile.pem
    

0

Periksa izin pada file .pem ... openssh biasanya tidak suka kunci pribadi yang dapat dibaca dunia, dan akan gagal (iir, scp tidak melakukan pekerjaan yang baik dalam memberikan umpan balik ini kepada pengguna).

Bisakah Anda ssh dengan kunci itu ke host AWS Anda?


Ya, saya bisa ssh dengan kunci itu ke host AWS saya. Sebenarnya, masalah yang saya alami adalah, saya berada di host Amazon (melalui ssh), jadi ketika saya melakukan cd, saya hanya dapat melihat file di server Amazon saya, bukan direktori Mac Download lokal di mana saya menyimpan file pem saya . Saya hanya dapat melakukan cd ke direktori Downloads Mac lokal saya ketika saya keluar dari host EC2 saya. Tetapi jika saya keluar ke host EC2 saya, saya tidak bisa mengunggah file phpMyAdmin ke server EC2 saya. Izin pem saya adalah 400, saya pikir tidak apa-apa.
HoKy22

2
Terima kasih banyak atas bantuannya, saya menemukan masalah saya dengan pertanyaan terakhir yang Anda ajukan. Sepertinya saya bisa ssh atau scp, bukan dua bersama-sama.
HoKy22

terima kasih atas petunjuknya hellokitty22. Saya memiliki dua terminal yang terbuka satu untuk ssh dan satu untuk scp juga.
donebizkit

0

Pertama, Anda harus mengubah mode .pemfile dari mode baca dan tulis menjadi mode hanya baca. Ini dapat dilakukan hanya dengan satu perintah di terminalsudo chmod 400 your_public_key.pem


0

Saya mencoba semua saran yang disebutkan di atas dan tidak ada yang berhasil. Saya mengakhiri instance saat ini, meluncurkan yang lain dan mengulangi proses yang sama persis. Kali ini tidak ada masalah. Terkadang itu mungkin kesalahan remote ami.


0

Ini hanya bekerja untuk saya. Saya menggunakan kombinasi dua jawaban lain untuk pertanyaan ini.

scp -i /Users/me/documents/myKP.pem -r /Users/me/desktop/testDir \
       ec2-user@ec2-11-111-11-11.compute-1.amazonaws.com:/home/ec2-user/remoteDir

"Ec2-user@ec2-11-111-11-11.compute-1.amazonaws.com" disalin dan ditempel dari DNS publik instance EC2 Anda.


-1

Saya akan menggunakan:

scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'

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.