SSH Anahtarlarını authorized_keys dosyasına nasıl eklerim?

146

Geliştirme için kullandığım Amazon EC2'de bir Ubuntu sunucum var ve bugün ~/.ssh/authorized_keys dosyamdan her şeyi aptalca temizledim. Neyse ki bir SSH açıkım var, bu yüzden hala bağlıyım ve dosyayı düzeltebilirim, ancak anahtar dosyamı geri koymaya çalıştığımda işe yaramıyor. Yerel makinemdeki sunucudan izin alınıyorum.

authorized_keys 600 izinlere sahiptir. SSH anahtarımı ssh-rsa ile eklemeye ve ssh-rsa'yı kapatmaya çalıştım. Ayrıca SSH anahtarını tek bir satır yapmayı denedim, ama bu da işe yaramadı.

Dosyayı nasıl yeniden yükleyeceğim gibi başka bir şey var mı?

    
sordu Dave Long 01.06.2011 18:02

9 cevap

170

Dosyayı, içeriği özel anahtarınız olan -----BEGIN RSA PRIVATE KEY----- ile başlayan içeriğiyle asla yapmamalısınız. Bunun yerine, genel anahtarını ~/.ssh/authorized_keys dosyasına koymalısınız.

Bu genel anahtar, .pub kullanılarak oluşturulduğunda ssh-keygen uzantısına sahip ve içeriği ssh-rsa AAAAB3 ile başlıyor. (İkili format, bu sorunun cevabı bölümünde açıklanmıştır.)

Sunucudaki ~/.ssh izinleri 700 olmalıdır. ~/.ssh/authorized_keys dosyası (sunucuda) 600 kipi olmalıdır. İstemci tarafında (özel) anahtarın izinleri olmalıdır. 600.

Özel anahtar şifre ile korunmamışsa ve sunucuya koyduysanız, yeni bir tane oluşturmanızı öneririm:

ssh-keygen -t rsa

Kimsenin silinen özel anahtarı sunucudan kurtaramayacağından eminseniz, bunu atlayabilirsiniz.

Bu yardımcı olmazsa, daha fazla ayrıntı için seçeneklerle ssh 'yi çalıştırın:

ssh -vvv [email protected]

Sunucu tarafında, ayrıntılar için /var/log/auth.log 'yi inceleyebilirsiniz.

    
verilen cevap Lekensteyn 01.06.2011 18:29
146

Genel anahtarınızı uzak makinenin authorized_keys 'sine kurmanın alternatif bir yolu:

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Bazı avantajlar:

  • , yüklenecek ssh-copy-id gerektirmez.

  • , mkdir 'sinin id_rsa.pub ' sini authorized_keys 'ye eklemeden önce çalıştığını garanti eder.

verilen cevap Marius Butuc 27.02.2013 20:31
115

Oturum açma kimlik doğrulamasına sahipseniz, ortak anahtarlarınızı eklemek için ssh-copy-id kullanın. uzak sunucu.

ssh-copy-id [email protected]
    
verilen cevap Shoaib Nawaz 01.06.2011 18:32
32
local> scp .ssh/id_dsa.pub remote.com:
local> ssh remote.com
remote> cat id_dsa.pub >> .ssh/authorized_keys
remote> rm id_dsa.pub
remote> exit
    
verilen cevap jjg 01.06.2011 20:23
7

En kolay yol kopyalayıp yapıştırmaktır ...

Öncelikle, "ssh-rsa" başlığını içeren e-posta adresinizle bitene kadar yerel ortak anahtarınızın id_rsa.pub içeriğini görüntüleyin / kopyalayın:

cat ~/.ssh/id_rsa.pub

Ardından sunucuda authorized_keys dosyasını düzenleyin ve panonuzun içeriğini o dosyadaki diğer anahtarların altına yapıştırın:

nano ~/.ssh/authorized_keys

Ve Ctl+O dosyasını kaydedin, Ctl+X dosyasından çıkın, exit SSH oturumundan çıkın ve çalışıp çalışmadığını doğrulamak için tekrar giriş yapmayı deneyin. Bir şifre sormadıysa işe yaradı.

    
verilen cevap ow3n 07.09.2015 20:42
3

Genel anahtarı kaydettikten sonra, özel anahtarı bir dizine ve bilgisayarınızda bir dosyaya kaydetmelisiniz. Ve ssh üzerindeki macunun auth bölümünde, masaüstünüze kaydettiğiniz özel anahtar dosyasına işaret etmelisiniz. Çalışacak. Benim için çalışıyor.

    
verilen cevap user273266 23.04.2014 21:59
3

Özellikle AWS örnekleriyle ilgili olduğundan ve tüm cevapların sadece bir Linux sorunu olarak ele alınıp, sanki bir donanım parçası gibi davranmasına katkıda bulunabileceğimi düşündüm. Anlamanız gereken ilk şey, hiç bir zaman, EC2 örneklerini donanım olarak kullanmamanız gerektiğidir. Bu sadece sizin için daha fazla iş yaratacaktır. İnsanların AWS ile karşılaştığını gördüğüm en büyük engel bu. Örneğinizin bir AMI'sini yapın ve ihtiyacınız olan anahtarı yeni örneğe enjekte edin. bulut-init sizin için halleder. Daha ayrıntılı olarak, tek yapmanız gereken, orijinalin AMI'sından yeni örneği oluştururken, doğru ortak anahtarı kullanmaktır. Onaylanan cevabın yorumlarında olduğu gibi, kendi anahtar çiftinizi ve pem dosyalarınızı oluşturmak isterseniz, AWS size ortak anahtarlarınızı EC2'de kullanım için yükleme seçeneği sunar.

İşte

    
verilen cevap einarc 03.03.2016 02:22
1

Anahtarı koymak istediğiniz uzak makinede bir kabuk alın ve gerekli dosyaları ve dizinleri oluşturmak için bu tek liner'ı çalıştırabilir, izinlerini ayarlayabilir ve anahtarı dosyaya ekleyebilirsiniz. Tabii ki aşağıdaki KEYGOESHERE bölümünü ve ondan sonraki yorumu değiştirmelisiniz.

mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && echo "ssh-rsa KEYGOESHERE [email protected] or note" >> ~/.ssh/authorized_keys
    
verilen cevap Sarel Botha 07.12.2016 21:33
1

Burada, bir metin dosyasında ortak anahtar dosya adlarının bir listesine sahip olabileceğiniz ve genel anahtar dosyalarının büyük partisi de aynı dizinde bulunabilecek bir varyasyon.

Bu varyasyon, içe aktarılacak genel anahtar dosyaların büyük bir listesini veriyorsanız yardımcı olabilir: -)

$ for i in $(cat ListOfPubKeyFiles.txt) ; do cat $i | ssh [email protected] "cat >> ~/.ssh/authorized_keys"; done
    
verilen cevap jlmontes 23.08.2016 19:32

Etiketlerdeki diğer soruları oku