Ec2 örneği için anahtar çiftini değiştirme


Yanıtlar:


491

Bu yanıt, var olan sunucuya artık SSH erişiminiz yoksa (yani özel anahtarınızı kaybettiğinizde) kullanışlıdır .

Hala SSH erişiminiz varsa, lütfen aşağıdaki cevaplardan birini kullanın.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

Eric Hammond'ın blog yazısı sayesinde yaptığım şey:

  1. Çalışan EC2 örneğini durdurma
  2. Sesini ayırın /dev/xvda1(hadi A hacmi diyelim) - buraya bakın
  3. Yeni anahtar çiftimi kullanarak yeni t1.micro EC2 örneğini başlat. Aynı alt ağda oluşturduğunuzdan emin olun , aksi takdirde örneği sonlandırıp tekrar oluşturmanız gerekir. - buraya bakın
  4. A birimini yeni mikro örneğe /dev/xvdf(veya /dev/sdf) olarak ekleyin
  5. SSH'yi yeni mikro örneğe ve A birimini /mnt/tmp

    $ sudo dağı / dev / xvdf1 / mnt / tmp

  6. Şuraya kopyala ~/.ssh/authorized_keys:/mnt/tmp/home/ubuntu/.ssh/authorized_keys

  7. Çıkış Yap
  8. Mikro örneği sonlandırma
  9. A hacmini ondan ayır
  10. A birimini ana örneğe aşağıdaki gibi ekleyin: /dev/xvda
  11. Ana örneği başlat
  12. Yeni .pemdosyanızı kullanarak daha önce olduğu gibi giriş yapın

Bu kadar.


6
kıçımı kurtardım, sen bir efsanesin!
Garry Welding

8
mkdir /mnt/tmpve sonra mount /dev/xvdf /mnt/tmp# 5 için hile yapmalı. Ve 13. adımı muhtemelen rm ~/.ssh/known_hostsbağlandığınız kutularda olduğunu unutmayın .
brandonscript

21
Bu çok kötü kokulu… Her şeyden önce aşağıdaki Eric Hammond'un cevabına bakınız. İkincisi: Pat Mcb'nin cevabı. Aslında aynı şeyi yaparlar ama komik bir çözüm yapmak için zamanınızı 1 saat israf etmeden. PS. Ayrıca bkz. Stackoverflow.com/a/24143976/547223
kgadek

3
Burada bu cevabı temel alan gerçekten spesifik talimatlar yazdım ama aslında aynı fikir - gist.github.com/tamoyal/1b7ec4d3871b343d353d . @Kgadek'in belirttiği gibi, biraz kirli ve zaman alıcıdır, ancak anahtarı değiştirmek istediğiniz sunucudan kilitliyseniz ve bu sunucunun bir kopyasını döndürmek istemiyorsanız harika bir seçenektir. Bir saat değil, örnek başına yaklaşık 5-10 dakika sürer.
Tony

4
@Eric ve @Pat tarafından gönderilen yanıtlar, örnekleri için yalnızca farklı bir anahtar çifti kullanmak isteyen kişilere yönelik çözümlerdir. Bunlar, anahtar çifti dosyasını bir şekilde kaybeden bir kullanıcıya yardımcı olmaz. Birimi ayırmadan ve başka bir örneğe bağlamadan, o birim üzerinde nasıl kontrol elde edersiniz? Orijinal .ssh/authorized_keysdosyayı değiştirelim .
sanjeev

187

Bir örnek başlatıldıktan sonra, örnekle ilişkili anahtar çiftini meta veri düzeyinde değiştirmenin bir yolu yoktur, ancak örneğe bağlanmak için kullandığınız ssh anahtarını değiştirebilirsiniz.

Çoğu AMI'de genel ssh anahtarını indiren ve bir .ssh / yetkili_anahtarlar dosyasına yükleyen bir başlatma işlemi vardır, böylece ilgili kullanıcı ssh anahtarını kullanarak ssh olarak girebilirsiniz.

Bir örneğe erişmek için kullandığınız ssh anahtarını değiştirmek isterseniz, örneğin kendindeki yetkili_anahtarlar dosyasını düzenlemek ve yeni ssh genel anahtarınıza dönüştürmek istersiniz.

Authority_keys dosyası, oturum açtığınız kullanıcının ana dizininin altındaki .ssh alt dizininin altındadır. Çalıştırdığınız AMI'ye bağlı olarak, şunlardan birinde olabilir:

/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys

Authority_keys dosyasını düzenledikten sonra, dosyayı düzenlemek için kullandığınız oturumun bağlantısını kesmeden önce örneğe ssh yapabileceğinizi onaylamak için her zaman farklı bir terminal kullanın. Bir hata yapmak ve kendinizi örnekten tamamen kilitlemek istemezsiniz.

EC2'de ssh anahtar çiftlerini düşünürken, Amazon'un sizin için anahtar çiftini oluşturması yerine kendi kişisel ssh ortak anahtarınızı EC2'ye yüklemenizi öneririz.

İşte bunun hakkında yazdığım bir makale:

Amazon EC2'ye Kişisel ssh Anahtarları Yükleme
http://alestic.com/2010/10/ec2-ssh-keys

Bu yalnızca çalıştırdığınız yeni örnekler için geçerlidir.


Aptalca bu hatayı yaptım, yani authority_keys dosyasını düzenledim ve oturumu kapattım. Şimdi, ssh geri dönemez :(. Hızlı bir düzeltme önerisi var mı?
aatifh

11
aatifh: İşte kendinizi bu durumdan nasıl çıkaracağınız hakkında yazdığım bir makale: alestic.com/2011/02/ec2-fix-ebs-root
Eric Hammond

@EricHammond Bu yerin dışında olabilir ama bunların nasıl çalıştığını biliyor gibisiniz ... Bugün bir EC2 örneği ayarladım ve Mac'imde özel anahtar .pemdosyasını aldım, ancak ssh -i key.pemkimlik doğrulaması yapılmıyor (izin verilmedi (publickey)). Anahtar Çifti Adı altındaki EC2 Yönetim Konsolu'nda hiçbir şey listelenmez. Bu beni endişelendiriyor. Bunu nasıl ayarlayabilirim? Yönetim Konsolu'na göre yapılandırıldığım hiçbir anahtar çiftinin atanmamış olduğu anlaşılıyor!
Steven Lu

1
@StevenLu: Evet, yorum konuları yeni sorular sormak için yanlış yer. Serverfault.com'da yeni bir soru oluşturmayı deneyin (bu sorun için stackoverflow'dan daha uygundur).
Eric Hammond

4
İşte anahtarınızı eklemek için güzel bir küçük astar. Bu sadece oluşturulan AWS'ye ek olarak normal pub anahtarınızı ekler, bu yüzden işe yaramazsa kendinizi kilitlemeyeceksiniz: stackoverflow.com/a/5654728/193494
Kevin C.

78

AWS pem'inizi indirdikten sonra bu komutu çalıştırın.

ssh-keygen -f YOURKEY.pem -y

Sonra çıktıyı içine dökün authorized_keys.

Veya pem dosyasını AWS örneğinize kopyalayın ve aşağıdaki komutları yürütün

chmod 600 YOURKEY.pem

ve sonra

ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys

14
Bu yalnızca sisteme zaten erişiminiz varsa çalışır, değil mi? (eski .pem dosyasını kaybetmemiş gibi).
Daniel

5
Mevcut kullanıcıyı eklemek yerine geçersiz kılmak için >> yerine> kullanabilirsiniz.
Adrian Lopez

Bu doğru ve en basit cevaptır. Yeniden başlatmanıza, yeni örnekler oluşturmanıza veya sürücüleri takmanıza gerek yoktur. Sadece .pem dosyasını edinin, keygen yapın ve yetkili_anahtarlara ekleyin.
Spanky

Bu ssh-keygen -f YOURKEY.pem -y >> ~ / .ssh / yetkili_anahtarlar yaptım ama sitll benim ec2 yeni kasık anahtar ile erişemezsiniz.
manukyanv07

Bunu çalıştırdım ve yerel anahtarım değişmedi.
Luiz

50

AWS EC2 desteğinden talimat:

  1. Pem girişini değiştir
  2. EC2 Konsolunuza gidin
  3. AĞ ve GÜVENLİK altında Anahtar Çifti'ne tıklayın Anahtar Çifti Oluştur'a tıklayın
  4. Yeni anahtar çiftinize bir ad verin, .pem dosyasını kaydedin. Anahtar çiftinin adı, örneğinize bağlanmak için kullanılacaktır
  5. Örneğinize SSH bağlantısı oluşturun ve açık tutun
  6. PuttyGen'de .pem dosyanızı yüklemek için "Yükle" yi tıklayın
  7. SSH-2 RSA radyo düğmesini işaretli tutun. "Özel anahtarı kaydet" i tıklayın. Pop-up pencere uyarısı alırsınız, "Evet" i tıklayın
  8. genel anahtarı oluşturmak için "ortak anahtarı kaydet" i de tıklayın. Bu, mevcut örneğinize kopyalayacağımız genel anahtardır
  9. Genel anahtarı yeni anahtar çifti adıyla ve .pub uzantısıyla kaydedin
  10. Ortak anahtar içeriğini bir not defterinde açma
  11. aşağıdaki içeriği
    kopyala
  12. bağlı örneğinizde, vi aracını kullanarak yetkili_anahtarlar dosyanızı açın. Aşağıdaki komutu çalıştırın: vi .ssh / authority_keys dosyadaki orijinal ortak anahtarı da görmelisiniz
  13. imlecinizi dosyadaki ilk ortak anahtar içeriğinizin sonuna götürün: eklemek için "i" yazın
  14. yeni satıra "ssh-rsa" yazın ve ortak anahtarın içeriğini, boşluğunu ve .pem dosyasının adını (.pem olmadan) yapıştırmadan önce bir boşluk ekleyin Not - önceki satırla aynı format
  15. Esc tuşuna basın ve şunu yazın: wq!

bu işlem güncellenmiş yetkili_anahtarlar dosyasını kaydeder

şimdi yeni anahtar pai'nizi kullanarak örneğinize yeni bir SSH oturumu açmayı deneyin

Yeni anahtar çiftini kullanarak örneğe SSH yapabileceğinizi onayladıktan sonra, vi .ssh / yetkili_keyini kullanabilir ve eski anahtarı silebilirsiniz.

Shaggie sözüne cevap:

Birime bağlanamıyorsanız (örn. Anahtar bozuk), birimi ayırmak için AWS konsolunu kullanmaktan ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html ) ve birimdeki anahtarı değiştirmek yerine önceki örneğe geri takın.


6
En iyi cevap olmalı

2
Eski anahtar bozulduysa ve eski ppk dosyasına sahip olmadığınız için macunla örneğe bağlanamıyorsanız ne olur ???
17'de Shaggie

3
SSH erişiminiz yoksa, bu nedenle bu sorun.
Jayden Lawson

3
Jayden Lawson, eğer internet bağlantın yoksa?
Elia Weiss

1
Anahtar çiftinin başka biriyle paylaştığı ve artık anahtar çiftlerini değiştirmesi gerekiyor olabilir, böylece kişi artık giriş yapamaz, Veya bunun gibi başka birçok neden,
Harikrishna

38

Ben Elastik Beanstalk tarafından yönetilen zaman bunu fark edebilirsiniz etkin EC2 anahtar çifti değiştirin. Elastik Beanstalk> Yapılandırma> Güvenlik altında, EC2 anahtar çifti açılır menüsünden yeni anahtarı seçin . Bu mesajı, emin olup olmadığınızı soran bir mesaj görürsünüz:

EC2KeyName: EC2KeyName ayarlarında yapılan değişiklikler hemen geçerli olmaz. Mevcut EC2 bulut sunucularınızın her biri değiştirilecek ve yeni ayarlarınız geçerli olacaktır.

Bunu yaptığımda örneğim zaten sonlandırıldı. Daha sonra başladı, feshedildi ve tekrar başladı. Görünüşe göre "değiştirme", yeni bir örnek oluşturma ve sonlandırma anlamına gelir. Önyükleme biriminizi değiştirdiyseniz, önce bir AMI oluşturun, ardından AMI'yi Özel AMI Kimliği ile aynı Elastik Beanstalk> Yapılandırma> Örnekler formunda belirtin . Bu aynı zamanda EC2 bulut sunucularının değiştirilmesi konusunda da uyarır.

EC2 anahtar çiftinizi ve Özel AMI Kimliğinizi değiştirdikten ve her ikisiyle ilgili uyarıları gördükten sonra, devam etmek için Kaydet'i tıklayın .

Örnek yeniden oluşturulduğunda IP adresinin değiştiğini unutmayın, bu nedenle SSH üzerinden bağlanırken kullanmak için EC2 konsolundan yeni bir IP adresi almanız gerekir.


1
Bu, şimdi yapılandırma 'Güvenlik' bölümü altında.
Demaine

Teşekkürler @WillDemaine. Şu anda AWS kullanmıyorum, bu yüzden sözünü alacağım ve düzenlemeyi onaylayacağım!
Mark Berry

31

Bu yaklaşımı izledim ve bir süre sonra işe yaradı. Gerçek komutların olmaması onu zorlaştırdı, ama anladım. ANCAK - kısa bir süre sonra çok daha kolay bir yaklaşım bulundu ve test edildi:

  1. Örneğinizi AMI olarak kaydedin (yeniden başlatma veya değil, yeniden başlatmayı öneririm). Bu yalnızca EBS desteklendiğinde çalışır.
  2. Ardından, bu AMI'den bir örnek başlatın ve yeni Keyfile'ınızı atayın.
  3. Elastik IP'nizi (varsa) yeni örneğinize taşıyın ve işiniz bitti.

~ /
.Ssh

Aynı şeyi yaptım ve işe yaradı, şimdi yeni pem ile giriş yapabilirim. Ama yine de eski pem ile giriş yapabilirim. Yani şimdi 2 pembeler geçerlidir.
Vitaly

FYI, meşgulse farklı bir anahtarla yeni bir EC2'yi döndürmenin hızlı ve kolay bir GUI yöntemidir, ancak @vitaly eski pem anahtarınızın da geçerli olduğunu tespit etmek için /home/ec2-user/.ssh/authorized_keys adresine gidin ve kaldırın dosyadaki eski pem anahtarı. Hızlı Pem anahtar değiştirme yöntemi için teşekkürler zaman yok güzel ve kolay.
Blu Towers

Bu benim için işe yaramadı. AWS, parolanın, örnek bir AMI'den oluşturulduysa üst görüntünün kimlik bilgilerini kullandığını belirten başka bir mesajla kullanılamadığını söylemeye devam etti.
Brady

15

Aşağıdaki adımlar takip edilirse çok zaman kazandıracak ve çalışan örneği durdurmaya gerek kalmayacaktır.

  1. Yeni anahtar çiftini kullanarak yeni t1.micro EC2 örneğini başlatın. Aynı alt ağda oluşturduğunuzdan emin olun , aksi takdirde örneği sonlandırıp tekrar oluşturmanız gerekir.
  2. SSH'nin yeni mikro örneğine gidin ve ~ / .ssh / authority_keys içeriğini bilgisayarınızda bir yere kopyalayın .
  3. Eski ssh anahtarıyla ana örneğe giriş yapın .
  4. Dosya içeriğini 2. noktadan ~ / .ssh / yetkili_anahtarlara kopyalayın ve değiştirin
  5. Artık sadece yeni anahtarla tekrar giriş yapabilirsiniz. Eski anahtar artık çalışmaz.

İşte bu. Keyfini çıkarın :)


14

En basit yaklaşımın:

  1. Mevcut örneğin AMI görüntüsünü oluşturun.
  2. Yeni anahtar çifti ile AMI görüntüsünü (1. adımda belirtilen) kullanarak yeni EC2 örneğini başlatın.
  3. Yeni EC2 örneğine yeni anahtarla giriş yapın.

@Brady, ne işe yaramıyor? anlık görüntü mü? örnek başlatılıyor mu? oturum aç?
Sergey

4
Bu değişikliğin yeni bir değişiklik olup olmadığından emin değilim, ancak zaten bir anahtar atanmış bir örnekten bir AMI oluşturduğunuzda, kopyalanmış AMI görüntüsünde oturum açıp açmamıza bakılmaksızın bu anahtarın kullanılabilir olması gerekir oluşturma sırasında farklı bir anahtar çifti atarsınız.
Brady

@Brady'den bahsetmediği gibi bu bir çözüm değildir.
Greg Sansom

8

FlexibleBeanstalk platformunu kullanıyorsanız, tuşları aşağıdakileri kullanarak değiştirebilirsiniz:

  • Elastik Beanstalk paneli
  • Yapılandırma
  • Örnekler (sağ üst dişli)
  • EC2 anahtar çifti

Bu geçerli örneği sonlandıracak ve seçilen tuşlar / ayarlarla yeni bir tane oluşturacaktır.


2
ElastikBeanstalk'ta olmanız şartıyla, buradaki en basit cevabı eller aşağı.
Yuval Karmi

2
Uyarı! Bu tehlikeli bir çözüm. AWS ayrıca söz konusu örneğe (!!) eklenmiş depolama alanını (yani Sanal HDD) sıfırlar. Bu nedenle, depolama birimini ayırmanız ve yeni bir örnek oluşturduktan sonra, yeni örnekle birlikte gelen yeni yerine yeniden yeniden bağlamanız gerekir. Tabii ki, şifreli bir birim (ve anahtarını kaybetmediniz ..) en iyisi olacaktır
JamesC

7

Bu soruda sorulan iki senaryo vardır: -

1) .pem dosyasına erişiminiz yok bu yüzden yeni bir tane oluşturmak istiyorsunuz.

2) Sizde var. pem dosyasıyla erişim sağlayın, ancak yalnızca güvenlik açığı veya güvenlik nedeniyle yeni bir .pem dosyası değiştirmek veya oluşturmak istiyorsunuz .

Yani anahtarlarını kaybetmiş eğer yukarı ve diğer cevaplar görebilirsiniz . Ancak .pem dosyanızı yalnızca güvenlik amacıyla değiştirirseniz şu adımları izleyin:

1) AWS konsolu girişine gidin ve oradaki anahtar çifti bölümünden yeni bir .pem dosyası oluşturun. Otomatik olarak .pem dosyasını bilgisayarınıza indirecektir

2) Linux / Ubuntu kullanıyorsanız izninizi 400 olarak değiştirin.

chmod 400 yournewfile.pem

3) Yerel makinenizde yeni indirilen dosyanın RSA'sını oluşturun

ssh-keygen -f yournewfile.pem -y

4) RSA kodunu buradan kopyalayın

5) Şimdi önceki .pem dosyası aracılığıyla örneğinize SSH

ssh -i oldpemfileName.pem username@ipaddress

sudo vim  ~/.ssh/authorized_keys

6) Bir-iki satır boşluk bırakın ve kopyalanan yeni RSA dosyasını buraya yapıştırın ve ardından dosyayı kaydedin

7) Şimdi yeni .pem dosyanız çalışan örneğe bağlandı

8) Önceki .pem dosya erişimini devre dışı bırakmak istiyorsanız,

sudo vim ~/.ssh/authorized_keys

önceki RSA'yı buradan kaldırın veya değiştirin.

Not: - Yeni oluşturulan RSA'nın değişmemesi için dikkatlice çıkarın.

Bu şekilde, yeni .pem dosyasını çalışan örneğinizle değiştirebilir / bağlayabilirsiniz.

Güvenlik nedeniyle önceden oluşturulan .pem dosyasına erişimi iptal edebilirsiniz.

Umarım yardımcı olur!


2
Bu çözümü beğendim çünkü donmuş AMI görüntüsü ile yeni bir örnek oluşturmam gerekmiyor. Ancak bu yöntem, EC2 kontrol panelindeki EC2 örneğinin ilişkili anahtar çiftini değiştirebilir mi? @Parveen yadav
addicted

6

En basit çözüm, içeriğini kopyalamaktır.

~/.ssh/id_rsa.pub

AWS örneğinizin yetkili_anahtarlarına

~/.ssh/authorized_keys

Bu, ssh komutu için bir pem dosyası belirtmeden EC2 örneğine ssh yapmanızı sağlar. Bağlanmayı test ettikten sonra diğer tüm anahtarları kaldırabilirsiniz.

Başka biriyle paylaşmak için yeni bir anahtar oluşturmanız gerekirse, bunu aşağıdakilerle yapabilirsiniz:

ssh-keygen -t rsa

özel key.pem dosyasını oluşturacak ve bunun genel anahtarını aşağıdakilerle alabilirsiniz:

ssh-keygen -f private_key.pem -y > public_key.pub

Private_key.pem olan herkes,

ssh user@host.com -i private_key.pem

4
~/.ssh/authorized_keysSSH aws örneğini bile yapamadığımda nasıl erişebilirim ?
prayagupd

3
Son satırın yanlış olduğunu düşünüyorum, sadece özel anahtarınız varsa bağlanabileceksiniz .. ssh -i private_key.pem user@host.com. Birinin kendi örneğine erişmesine izin vermek istiyorsanız, ortak anahtarınızı onlarla güvenli bir şekilde paylaşabilir ve örneğe bu kullanıcı olarak erişmenizi sağlamak için yetkili anahtarlarına ekleyebilirler ...
code4cause

5

Kök cihazı döndürmeniz ve SSH Genel Anahtarını değiştirmeniz gerekmez authorized_keys. Bunun için herhangi bir örneğe ssh anahtarları eklemek için kullanıcı verilerini kullanabilir. Bunun için önce AWS konsolunu veya ssh-keygen'i kullanarak yeni bir KeyPair oluşturmanız gerekir.

ssh-keygen -f YOURKEY.pem -y

Bu, yeni SSH KeyPair'iniz için genel anahtar oluşturur, bu genel anahtarı kopyalar ve aşağıdaki komut dosyasında kullanır.

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//

Yeniden başlatmanın ardından makinede belirtilen SSH publch anahtarı olacaktır. İlk yeniden başlatmanın ardından kullanıcı verilerini kaldırın. Başlangıçta kullanıcı verileri hakkında daha fazla bilgi edinin .


4
  • Yeni anahtar oluşturun, örneğin PuTTY Anahtar Üreticisi'ni kullanarak
  • Durdurma örneği
  • Ortak anahtarı sunucuya iletmek için örnek kullanıcı verilerini ayarlama
  • Örneği başlat

Uyarı: Kullanıcı verilerini tekrar temizlemeyi unutmayın. Aksi takdirde, bu anahtar her örnek başlangıcında itilecektir. Adım adım talimatlar .

#cloud-config
bootcmd:
 - echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys

resim açıklamasını buraya girin


1
Bu resmi AWS yolu yapmak, bu yüzden @reto sahne. aws.amazon.com/premiumsupport/knowledge-center/…
Bevan

3

Aşağıdaki adımları denedim ve örneği durdurmadan çalıştı. Benim gereksinimim - istemci makinemi değiştirdiğim için eski .pem dosyası ec2 örneğinde oturum açmama izin vermiyordu.

  1. Eski makinedeki eski .pem dosyanızı kullanarak ec2 örneğinde oturum açın. ~ / .Ssh / yetkili_anahtarlarını açın

Bu dosyada eski anahtarlarınızı göreceksiniz.

  1. ssh-keygen -f YOUR_PEM_FILE.pem -y Bir anahtar oluşturur. Anahtarı, 1. adımda açılan ~ / .ssh / yetkili_anahtarlarına ekleyin. Eski anahtarı silmenize gerek yok.

  2. AWS konsolundan yeni bir anahtar çifti oluşturun. Yeni makinenizde saklayın. Eski pem dosyasına yeniden adlandırın - eski pem dosyası hala AWS'deki ec2 örneğiyle ilişkilidir.

Hepsi tamam.

Yeni istemci makinemden AWS ec2'de oturum açabiliyorum.


3

EC2 yönetim ortamınızın anahtarını değiştirmek için birkaç seçeneğiniz vardır.

  1. Anahtarı .ssh / authority_keys dosyasında el ile değiştirebilirsiniz. Ancak bu, şifrelenmemişse örneğe veya birime gerçekten erişmenizi gerektirir.
  2. AWS Sistem Yöneticisi'ni kullanabilirsiniz. Bunun için bir ajanın kurulu olması gerekir.

İlk seçenek yanıtlarda veya seçtiğiniz arama motorunda kolayca bulunabileceğinden, Sistem Yöneticisi'ne odaklanmak istiyorum.

  1. Hizmeti Aç Systems Manager
  2. AutomationSol tarafa tıklayın .
  3. Tıklamak Execute Automation
  4. Seçin AWSSupport-TroubleshootSSH(genellikle son sayfadadır)

Resmi AWS Belgeleri hakkında daha fazla bilgi bulabilirsiniz


1

Yegor256'nın yanıtı benim için çalıştı, ama sadece sürücüler gibi o kadar iyi olmayanlara yardım etmek için bazı yorumlar ekleyeceğimi düşündüm (benim gibi!):

Amazon, birimi eklediğinizde birime ne adlandırmak istediğinizi seçmenizi sağlar. / Dev / sda - / dev / sdp aralığındaki bir adı kullandınız. Ubuntu'nun yeni sürümleri oraya koyduğunuz şeyi / dev / xvd (x) veya bu yönde bir şey olarak yeniden adlandırır.

Bu yüzden benim için, AWS'de mount adını ad olarak / dev / sdp'yi seçtim, sonra sunucuya giriş yaptım ve Ubuntu'nun / dev / xvdp1 için birimimi yeniden adlandırdığını keşfettim). Sonra sürücüyü monte etmek zorunda kaldım - benim için böyle yapmak zorunda kaldım:

mount -t ext4 xvdp1 /mnt/tmp

Tüm bu çemberleri atladıktan sonra / mnt / tmp adresindeki dosyalarıma erişebildim


bir yorum olarak, bu bir cevap olarak değil, yorum olarak eklenmelidir.
JDL

0

Bu yalnızca anahtarı değiştirmek / eklemek istediğiniz örneğe erişiminiz varsa çalışır. Yeni bir anahtar çifti oluşturabilirsiniz. Veya zaten anahtar çiftine sahipseniz, yeni çiftin ortak anahtarını örneğinizdeki yetkili_anahtarlar dosyasına yapıştırabilirsiniz.

vim .ssh / yetkili_anahtarlar

Artık bu çift için özel anahtarı kullanabilir ve giriş yapabilirsiniz.

Bu yardımcı olur umarım.


0

Benim sorunum, IPhalka açık olmak yerine denedim DNS. Sonra denedim public DNSve çözüldü


0

VM'de oturum açamıyorsanız ve ssh anahtarlarınızı sildiyseniz ve ec2'nizin anahtar çiftini aşağıdaki adımları kullanarak da değiştirebilirsiniz. Adım adım gidin 1) ec2 örneğinizi durdurun. 2) VM ve depolamanın anlık görüntüsünü alın. 3) Yeni bir sanal makine oluştururken anlık görüntünüzü seçin ve anlık görüntünüzden sanal makine oluşturun. 4) VM'nin oluşturulması anahtar çiftinizi indirirken. 5) VM UP'niz yeni bir anahtar çifti ile ssh yapabilirsiniz ve verileriniz de geri dönecektir.


0

Ne yapabilirsin...

  1. AmazonEC2RoleForSSM ilkesi eklenmiş yeni bir Örnek Profili / Rolü oluşturun.

  2. Bu Örnek Profilini örneğe ekleyin.

  3. Örnekte oturum açmak için SSM Oturum Yöneticisi'ni kullanın.
  4. Bir anahtar çifti oluşturmak için yerel makinenizde keygen kullanın.
  5. SSM oturumunuzu kullanarak söz konusu anahtarın genel kısmını örneğe aktarın.
  6. Kar.

0

İpuçları için teşekkürler çocuklar. Anahtar çiftlerini dinlemem gerektiğinde kesinlikle onları akılda tutacağım. Ancak, verimlilik ve tembellik açısından başka bir şey buldum:

  1. Yeni anahtar çiftinizi oluşturun ve kimlik bilgilerini indirin
  2. Örneğinizi sağ tıklayın> Tamamlandığında AMI Oluşturun
  3. örneğinizi sonlandırın (veya yeni parlak AMI'nizden başka bir tane oluşturabileceğinizden emin olana kadar durdurun)
  4. Yeni oluşturduğunuz AMI'den yeni bir EC2 örneği başlatın ve yukarıdaki (1) adımında oluşturulan yeni anahtar çiftinizi belirtin.

Umarım bu sizin için yararlı olabilir ve size biraz zaman kazandırır ve bunun gibi şeylerden aldığınız beyaz saç miktarını en aza indirir :)

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.