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

Amazon EC2 üzerinde geliştirme için kullandığım bir Ubuntu sunucum var ve bugün aptalca bir şekilde ~/.ssh/authorized_keys dosyamdaki her şeyi temizledim. Neyse ki açık bir SSH'im var, bu yüzden hala bağlıyım ve dosyayı düzeltebiliyorum, ancak anahtar dosyamı geri koymaya çalıştığımda çalışmıyor. Yerel makinemdeki sunucudan hala izin reddedildi uyarısı alıyorum.

authorized_keys 600 izinlerine sahiptir. SSH anahtarımı ssh-rsa ile eklemeyi ve ssh-rsa'yı kapalı bırakmayı denedim. SSH anahtarını tek satır yapmayı da denedim ama bu da işe yaramadı.

Dosyayı yeniden yüklemek gibi yapmam gereken başka bir şey var mı?

Çözüm

İçeriği -----BEGIN RSA PRIVATE KEY----- ile başlayan dosyayı asla sunucuya kaydetmemelisiniz, bu sizin özel anahtarınızdır. Bunun yerine, public anahtarı ~/.ssh/authorized_keys dosyasına koymalısınız.

Bu public anahtar ssh-keygen kullanılarak oluşturulduğunda .pub uzantısına sahiptir ve içeriği ssh-rsa AAAAB3 ile başlar. (İkili biçim [bu sorunun] yanıtlarında açıklanmıştır (https://stackoverflow.com/q/12749858/427545)).

Sunucu üzerindeki ~/.ssh izinleri 700 olmalıdır. Sunucudaki ~/.ssh/authorized_keys dosyasının modunun 600 olması gerekir. İstemci tarafındaki (özel) anahtarın izinleri 600 olmalıdır.

Özel anahtar bir parola ile korunmuyorsa ve bunu sunucuya koyduysanız, yeni bir tane oluşturmanızı tavsiye ederim:

ssh-keygen -t rsa

Silinen özel anahtarı kimsenin sunucudan kurtaramayacağından tamamen eminseniz bunu atlayabilirsiniz.

Bu işe yaramazsa, daha fazla ayrıntı için ssh seçeneğini çalıştırın:

ssh -vvv user@example.com

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

Yorumlar (10)

Oturum açma tabanlı kimlik doğrulamanız varsa, açık anahtarlarınızı uzak sunucuya eklemek için ssh-copy-id kullanın.

ssh-copy-id user@host
Yorumlar (5)
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
Yorumlar (0)