Bir dosyayı Amazon EC2 örneğine kopyalamak için scp mi kullanıyorsunuz?


200

Amazon EC2 örneğime İndirmeler'den (çevrimiçi indirdiğim phpMyAdmin) bir dosyayı scp etmek için Mac Terminalimi kullanmaya çalışıyorum.

Kullandığım komut şuydu:

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

Aldığım hata: Uyarı: myAmazonKey.pem kimlik dosyası erişilebilir değil: Böyle bir dosya veya dizin yok. İzin reddedildi (publickey). bağlantı kaybedildi

Hem myAmazonkey.pem hem de phpMyAdmin-3.4.5-all-language.tar.gz Yüklemeler'de, bu yüzden denedim

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:~/.

ve aldım hata: Uyarı: Kimlik dosyası /User/Hello_Kitty22/Downloads/myAmazonkey.pem erişilemez: Böyle bir dosya veya dizin yok. İzin reddedildi (publickey). bağlantı kaybedildi

Birisi bana sorunumu nasıl çözebileceğimi söyleyebilir mi?

ps benzer bir yazı var: scp (güvenli kopya) şifre olmadan ec2 örneği ama benim soruma cevap yok.


Amazon
örneğimi

Yanıtlar:


378

Kullanıcının belirtilmesini deneyin ec2-user, ör.

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

Bkz . SSH Kullanarak Linux / UNIX Örneklerine Bağlanma .


16
harika çalışıyor. Bir ubuntu örneği çalıştırıyorsanız, kullanıcı varsayılan kullanıcınızın "ubuntu" olabileceğini unutmayın.
RussellStewart

tabii ki kopyalamak / çalışmayabilir. Aydınlandığınız için teşekkürler!
Ocak 14:13

@DanielDropik Şaka yapıp yapmadığınızı bilmiyorum ... ancak :/klasörü sudo (veya root olarak) çalıştırmadan tüm makinelerde izin hataları verecek şekilde sistemin kök dizinine kopyalamayı deneyin.
Dobz

neden diyor "Kök" kullanıcı yerine "ubuntu" kullanıcı olarak giriş yapın. kopyalamak için ne yapmam gerekiyor
Arjun

benim durumumda ben kullanıcıyı kullanıyordum ama fark ı yerine alan adı arasında mec2-50-17-16-67.compute-1.amazonaws.com kamu dns eklemek
Shareef'ten

31

İkinci dizin hedef hedefiniz, orada sunucu adını kullanmayın. Başka bir deyişle, şu anda bulunduğunuz makine için makine adını belirtmeniz gerekmez.

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

-r bu bir dizinse.


19

SSH'nin çalışması için anahtarınızın herkes tarafından görülebilir olmaması gerekir. Gerekirse bu komutu kullanın:

chmod 400 yourPublicKeyFile.pem

Gün kardeşimi kurtardın
Mayukh Sarkar

13

Yukarıdaki scp komutunu denemek için yerel makinenizde olmalısınız.

Yerel makinenizde şunları deneyin:

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

Bir EC2 örneği için neyin işe yaradığına dair ayrıntılar :

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

Başlangıç ​​için birkaç not:

  1. Sonra verilen üç parametre arasındaki boşluklara dikkat edin. -i
  2. scpgüvenli kopya protokolü anlamına gelir. Kelimeleri bilmek komutu hatırlamayı kolaylaştırır.
  3. -i.pemdosyayı bir sonraki parametre olarak vermeniz gerektiğini belirtir . Eğer yoksa, -iihtiyacınız yok .pem.
  4. :~EC2 örneği için hedefin sonundaki notu not edin .

7

Tamamen aynı sorunum vardı, benim çözümüm

scp -i /path/pem -r /path/file/ ec2-user@public aws dns name: (burada boş bırakın)

bu bölümü yaptıktan sonra, ssh sunucusuna ve mv dosyasına istediğiniz yere girin


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

3

Aşağıdaki SCP formatı benim için çalışıyor

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

SampleFile.txt : Kök dizininizdeki yol olacaktır (Benim durumumda, / home / ubuntu). benim durumumda indirmek istediğim dosya / var / www idi

SampleFile2.txt : Makinenizin kök yolunun yolu olacaktır (Benim durumumda, / home / MyPCUserName)

Bu yüzden aşağıdaki komutu yazmam gerekiyor

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

2

Yerelden Sunucuya dosya gönder:

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

Dosyayı Sunucudan Yerel'e indirin:

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


1

Yerel bir makineden AWS EC2 Linux örneğine dosya kopyalamak için SCP kullanma süreci, bu videoda adım adım (aşağıda belirtilen noktalar dahil) ele alınmaktadır .

SCP kullanımıyla ilgili bu sorunu gidermek için:

  1. Doğru Linux kullanıcısını belirtmeniz gerekir. Gönderen Amazon :

    • Amazon Linux için kullanıcı adı ec2 kullanıcısıdır.
    • RHEL için kullanıcı adı ec2 kullanıcısı veya köküdür.
    • Ubuntu için kullanıcı adı ubuntu veya köküdür.
    • Centos için kullanıcı adı centos'tur.
    • Fedora için kullanıcı adı ec2 kullanıcısıdır.
    • SUSE için kullanıcı adı ec2 kullanıcısı veya köküdür.
    • Aksi takdirde, ec2 kullanıcısı ve root çalışmazsa AMI sağlayıcınıza danışın.
  2. Özel anahtarınız herkes tarafından görülmemelidir. Dosyayı yalnızca kök kullanıcının okuyabilmesi için aşağıdaki komutu çalıştırın.

    chmod 400 /path/to/yourKeyFile.pem
    

0

.Pem dosyasındaki izinleri kontrol edin ... openssh genellikle dünya tarafından okunabilen özel anahtarları sevmez ve başarısız olur (iir, scp bu geri bildirimi kullanıcıya sağlamak için iyi bir iş çıkarmaz).

AWS ana makinenize bu anahtarla ssh yapabilir misiniz?


Evet, AWS sunucuma bu anahtarla ssh yapabilirim. Aslında, yaşadığım sorun Amazon ana bilgisayarındayım (ssh aracılığıyla), bu yüzden cd yaptığımda, pem dosyamı kaydettiğim yerel Mac İndirmeler dizinimi değil, yalnızca Amazon sunucumdaki dosyaları görebiliyorum . Yerel Mac Downloads dizinime yalnızca ec2 ana bilgisayarımdan çıktığımda cd yapabilirim. Ancak ec2 ana bilgisayarımdan çıkarsam, phpMyAdmin dosyasını ec2 sunucuma yükleyemedim. Pem'in izni 400, bence bu iyi.
HoKy22

2
Yardımınız için çok teşekkür ederim, sorunumu son sorduğunuz soruda buldum. Ssh veya scp yapabilirim, ikisi birlikte değil.
HoKy22

hellokitty22 ipucu için teşekkürler. Biri ssh ve diğeri scp için iki terminalim vardı.
donebizkit

0

Öncelikle .pemdosya modunu okuma ve yazma modundan salt okunur moda değiştirmelisiniz. Bu, terminaldeki tek bir komutla yapılabilirsudo chmod 400 your_public_key.pem


0

Yukarıda belirtilen tüm önerileri denedim ve hiçbir şey işe yaramadı. Mevcut örneği sonlandırdım, başka bir tane başlattım ve aynı işlemi tekrarladım. Bu sefer sorun yok. Bazen uzak ami'nin hatası olabilir.


0

Bu benim için işe yaradı. Bu soruya verilen diğer iki cevaptan oluşan bir kombinasyon kullandım.

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", ec2 örneğinizin genel DNS'inden kopyalanır ve yapıştırılır.


-1

Kullanmak istiyorum:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.