scp (güvenli kopya) şifresiz ec2 örneğine


404

Çalışan bir EC2 örneği var (FreeBSD 9 AMI ami-8cce3fe5) ve şifre istemi olmadan sorun oluşturmadan amazon tarafından oluşturulan anahtar dosyasını kullanarak ssh yapabilirsiniz.

Ancak, scp kullanarak örneğe bir dosya kopyalamak istediğimde bir parola girmem isteniyor:

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

Password:

Bunun neden olduğu hakkında herhangi bir fikir / nasıl önlenebilir?


Kullanıcı ve ana bilgisayar için tamamen aynı tanımlayıcıyı mı kullanıyorsunuz?
Lynch

Tanımlayıcı ile ne demek istediğini anladığımdan emin değilim, açıklayabilir misin?
Hoff

bir bağlantı için bir IP adresi, diğeri için bir ad kullanırsanız, çalışmaz. Az önce -ikimliğinizi sağlamak için bir seçenek kullandığınızı gördüm . Belki de ssh ile oturum açmak için kullandığınız komutu göstermelisiniz.
Lynch

lynch teşekkürler, anladım!
Hoff

Yanıtlar:


804

Bunu anladım. Yanlış sıraya girdim. Bu çalışıyor:

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

14
ec2'ye ssh üzerinden nasıl bağlanacağını anlayan, sadece sshkomutu değiştirin scpve pem dosyasından sonra ad dosyasını ekleyin.
Claudio Santos

11
Bu cevap biraz eski olduğu için yeni EC2 örneğimden daha yeni bir örnek: scp -i kp1.pem ./file.txt ec2-user@1.2.3.4: / home / ec2-user
siliconrockstar

1
@siliconrockstar İfadeniz ec2-user@1.2.3.4:/home/ec2-userkolayca daha kısa ve daha kolay ec2-user@1.2.3.4:./ ./FTW ile değiştirilebilir !
brock

2
Çok geç bir yorum, ancak standart olmayan bir bağlantı noktası kullanıyorsanız @ClaudioSantos'un önerdiği tam olarak çalışmaz. Bu ssh için -p ve scp için -P'dir.
Inukshuk

1
Ec2 içine ssh için * .PEM dosyamı kullanabilirsiniz. Ancak, bir dosyayı SCP için kullanmak istediğimde, bana "İzin Reddedildi" hatası verir! Bunu Nasıl Çözebilirim?
AleX_

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

(-r) parametresi gerekli değildir, ancak uzak yolun sonundan (/) çıkarılması gerekir.
Abbas

35

Yerel linux Centos 7'den AWS EC2'ye kopyalamak için aşağıdaki komutu kullandım.

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 .

Dosya adı, pem dosyası ile ec2 kullanıcı dizesi arasında olmamalıdır - çalışmaz. Bu aynı zamanda kopyalanan dosyanın adını ayırmanızı da sağlar.


14

yerel sunucudan uzak sunucuya dosya kopyalama

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

uzak sunucudan yerel makineye dosya kopyalama

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

Temel olarak sözdizimi: -

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

-iiçindir identity_file


8

pem dosyanızın ve göndermek istediğiniz bir dosya.txt dosyasının İndirilenler klasöründe olduğunu varsayalım

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

işe yaramıyorsa bana haber ver


scp -i /Users/Username/Downloads/myfile.pem -r ubuntu@my.ect.id.amazonaws.com: ~ / ~ / Masaüstü / dosyadan sunucuya yerel aktarmak istiyorsanız
Yatender Singh

2
Teşekkürler "erişim reddedildi" :/sonunda var ama :~/onunla çalışır
kakule

Evet çünkü: / kök klasör ve: ~ / kullanıcı klasörüdür, bu nedenle root kullanıcısıysanız: / veya: ~ / bir şey işe yarar ve root kullanıcısı değilseniz sadece: ~ / kullanmak zorundasınız.
Yatender Singh

3

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

bu hepinize çok yardımcı olacak arkadaşlar


2

Benim hadoopec2cluster.pemdosyasını kullanarak çenesinde bunu scp'yi olamazdı, benim yerel mac dizinde tek kişiydi scp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~.

Hadoopec2cluster.pem dosyasını hadoopec2cluster_2.pem klasörüne ve sonra kopyaladı scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~. İşte bu kadar!


2

Buna asıldım çünkü genel anahtar dosyamı

scp -i [private key file path]

Bu hatayı yakalayıp bunun yerine özel anahtar yolu olarak değiştirdiğimde, tamamen hazırdım.


2

Sizin durumunuzda, kullanıcının rootherhangi bir sorunu olmaz. Ancak, SSH altında farklı bir kullanıcı olarak oturum açmanız gereken belirli durumlarda, çalıştığınız dizinin scpSSHing yaptığınız kullanıcı için yeterli izinlere sahip olduğundan emin olun .


1

PSCP'yi kullanmak için PuTTYgen Kullanarak Özel Anahtarınızı Dönüştürme sırasında oluşturduğunuz özel anahtara ihtiyacınız vardır. Linux örneğinizin genel DNS adresine de ihtiyacınız var

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

0

bu kodu yaz

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

Hedef sunucuya erişimi olan bir SSH anahtarınız varsa ve kaynak sunucu bunu yapmıyorsa, -o "ForwardAgent = yes" eklenmesi, SSH ajanınızı bağlanmak için SSH anahtarınızı kullanabilmesi için kaynak sunucuya yönlendirmenize olanak tanır. hedef sunucu.


-6

Yeni test edildi:

Aşağıdaki komutu çalıştırın:

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

Sonra:

  1. ami (ec2'nin görüntüsü) oluşturun.
  2. adım 2'den yeni ami (görüntü) başlatmak yeni anahtarlar seçti.
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.