.Pem dosyasının SSH ve SCP'ye doğru dosya izni nedir?


69

AWS Ubuntu sunucuma SSH göndermeyi ve dizini yerel makineme kopyalamayı denedim. İşlem boyunca farklı dosya izni hataları yaşıyorum (aşağıda belirtilmiştir).

SSH ve SCP'ye izin veren .pem dosyası için gereken belirli bir dosya izni var mı?
Veya oturum açtıktan sonra dosya iznini iki kez değiştirmem gerekiyor - SSH ve SCP için bir kez?

İşte kullandığım komutlar:

SSH:

ssh -i sentiment.pem Todo@54.555.555.555

Uzaktan kumandadan yerel bilgisayara kopyalayın:

scp Todo@54.555.555.555:/home/ubuntu/sentimentfolder /Users/Toga/Desktop/sentimentlocal

Mac OS X 10.7.5'teyim.


Deneme ve hata:

1.) .pem dosyasını ilk indirdikten sonra, izinleri ayarlandı, THINK: 0644

-rw-r - r - @ 1 Toga personeli 1692 Şub 18 21:27 sentiment.pem

Daha sonra terminal üzerinden SSH'ye çalıştım ve aşağıdakileri aldım:

WARNING: UNPROTECTED PRIVATE KEY FILE! 
Permissions 0644 for 'sentiment.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: sentiment.pem
Permission denied (publickey).

2.) Dosya izinlerini güncelledim: chmod 660 sentiment.pem

Güncellemeden sonra izinler şu şekilde ayarlandı:

-rw-rw ---- @ 1 Toga personeli 1692 Şub 18 21:27 sentiment.pem

Daha sonra terminal üzerinden SSH'ye çalıştım ve aşağıdakileri aldım:

WARNING: UNPROTECTED PRIVATE KEY FILE! 
Permissions 0660 for 'sentiment.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: sentiment.pem
Permission denied (publickey).

3.) Dosya izinlerini güncelledim: chmod 600 sentiment.pem

Güncellemeden sonra izinler şu şekilde ayarlandı:

-rw ------- @ 1 Toga personeli 1692 Şub 18 21:27 sentiment.pem

Sonra terminal üzerinden SSH'ye çalıştım ve başarılı oldum !!

4.) Şimdi giriş yaptım, uzak dizini yerel bilgisayarıma kopyalamak için bir komutu çalıştırdım:

scp Todo@54.555.555.555:/home/ubuntu/sentimentfolder /Users/Toga/Desktop/sentimentlocal

Hangi döner:

Permission denied (publickey).

SCP Komutları Denendi:

1.) -i komutunu ekledi ve .pem dosyasına başvuruda bulundu:

scp -i sentiment.pem Todo@54.555.555.555: / ana sayfa / ubuntu / iletişim klasörü / Kullanıcılar / Toga / Masaüstü / duygusal /

2.) -i komutunu ekledi, .pem dosyasına başvurdu ve AWS kullanıcısını ec2 kullanıcısı olarak değiştirdi:

scp -i sentiment.pem ec2-user@54.555.555.555: / ana sayfa / ubuntu / iletişim klasörü / Kullanıcılar / Toga / Masaüstü / duygusal /

3.) -i komutunu ekledi, .pem dosyasına başvurdu, AWS kullanıcısını ec2 kullanıcısına değiştirdi ve .pem dosyasının konumu için tam dosya yolunu ekledi:

scp -i /Users/Toga/Desktop/rollup/Personal/Serial_Project_Starter/sentiment/sentiment.pem ec2-user@54.555.555.555: / ana sayfa / ubuntu / duyarlılık / Kullanıcılar / Toga / Masaüstü / duyarlılık


.Pem dosyasını da kullanabilmek için scp'ye söylemelisiniz
daniel kullmann

Anlaşılan @danielkullmann olarak adlandırdığınız için teşekkür ederiz. .Pem dosyasına doğrudan başvuran komutların bir kombinasyonunu denedim ancak henüz hiçbir şey işe yaramadı. Soruyu, denedimimi kataloglamak için "SCP Komutları Denendi" başlıklı bir bölümle güncelledim. Alternatif bir emir ise, lütfen bana bildirin. Teşekkür ederim.
George Jester

Yanıtlar:


110

Burayı ziyaret edin Amazon EC2'ye Uzaktan Nasıl Bağlanılır SSH Kullanarak veya aşağıya bakın.

Amazon EC2'ye SSH Kullanarak Uzaktan Bağlanma:

  1. .Pem dosyasını indirin.
  2. Amazon Dashboard'da, sol taraftaki çubuktan "Örnekler" i seçin ve sonra bağlanmak istediğiniz örneği seçin.
  3. "Eylemler" i tıklayın ve ardından "Bağlan" ı seçin
  4. "Bağımsız bir SSH İstemcisi ile Bağlan" seçeneğini tıklayın
  5. Terminal penceresi aç
  6. Bir dizin oluşturun:

    # mkdir -p ~/.ssh
    
  7. İndirilen .pem dosyasını yeni oluşturduğumuz .ssh dizinine taşıyın:

    # mv ~/Downloads/ec2private.pem ~/.ssh
    
  8. .Pem dosyasının izinlerini, yalnızca kök kullanıcının okuyabileceği şekilde değiştirin:

    # chmod 400 ~/.ssh/ec2private.pem
    
  9. Bir yapılandırma dosyası oluşturun:

    # vim ~/.ssh/config
    

    Bu yapılandırma dosyasına aşağıdaki metni girin:

    Host *amazonaws.com
    IdentityFile ~/.ssh/ec2private.pem
    User ec2-user
    

    O dosyayı sakla.

  10. Örnekinize bağlanmak için genel DNS ana bilgisayar adınızla ssh komutunu kullanın.
    Örneğin:

    # ssh ec2-54-23-23-23-34.example.amazonaws.com
    

1
Merak ediyorum: Neden olumsuz?
erik

1
Buna oy vermedim. Bu gerçekten yararlı görünüyor, uzaktan kumandadan yerel bilgisayarımla scp yapmam gerektiğinde sorunu çözüp çözmeyeceğinden emin değilim. Bunu deneyeceğim ve ne olacağını göreceğim. Sağol Babin.
George Jester

Dizinin tamamını ve içeriğini kopyalarken kullanın scp -r.
bahamat

1
Mükemmel cevap Pem'i hareket ettirmekten kaçınmak için, kullanılacak genel anahtarı belirlemek için ssh -i bayrağını kullanabilirsiniz. örneğin: ssh -i yolu / to / ec2private.pem ec2-54-23-23-23-34.example.amazonaws.com
Mafro34

15

chmod 400 {keyfile}.pem Amazon'nun talimat verdiği ve işe yaradığı şey.


Aradığım cevap buydu, kabul edilen cevaptaki tüm talimatlar iyi bir uygulama ... fakat sorunla ilgili değil.
sarink

3

IP adresini kullanmanız gerekmiyor, SCP komutunda sistemin tam ana bilgisayar adı görünüyor. AWS belgeleri bunu " http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html " bölümünde "Dosyaları Linux / Unix Örneklerine SCP ile Aktarma" bölümünde açıklamaktadır.

Ve -rdizinleri kopyalamak için kullanın .

Ve varsayılan kullanıcı adının farklı görüntüler için farklı olduğunu unutmayın:

Amazon Linux için varsayılan kullanıcı adı ec2-user. RHEL5 için kullanıcı adı sık sık rootama olabilir ec2-user. Ubuntu için kullanıcı adı ubuntu. SUSE Linux için kullanıcı adı root. Aksi takdirde, AMI sağlayıcınıza danışın.

Yani, bu komutu kullanın:

scp -r -i  /Users/Toga/Desktop/rollup/Personal/Serial_Project_Starter/sentiment/sentiment.pem ubuntu@ec2-xx-xx-xx-xx.compute-x.amazonaws.com:~/sentiment /Users/Toga/Desktop/sentimentlocal

1
Doğru kullanıcı adını kullanmak için iyi bir kafa şaplak hatırlatma. Yukarıdaki hatayı alın ve ubuntu kullanıcısını ubuntu örneklerinde kullanmayı hatırlamam gerekiyordu.
md_rasler

2

"İzin reddedildi (publickey)" uzak sunucudan geliyor, bu nedenle ya yanlış anahtar kullanıyorsunuz, bağlanmanıza izin verilmiyor ya da uzak yetkili_ anahtarlar dosyasında bir yazım hatası var.


2
chmod 0400 pemfile.pem

ve

ssh -i path_to_pem_file -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ec2-machine name

3
Lütfen emrinizi açıklayın ssh(ve mümkünse bir referans da verin). BTW, chmod 400dokuz ay önce bir cevapta sağlandı.
Scott
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.