Amazon EC2 örneğinde bulutta çalışan bir uygulama örneğim var ve yerel Ubuntu'mdan bağlamam gerekiyor. Yerel ubuntu ve dizüstü bilgisayar üzerinde iyi çalışıyor. Başka bir yerel Ubuntu'da SS2'den EC2'ye erişmeye çalışırken "İzin reddedildi (publickey)" mesajım var. Benim için çok garip.
Amazon EC2'de güvenlik ayarlarıyla ilgili bir takım sorunlar olduğunu düşünüyorum, bu da bir örneğe sınırlı IP erişimi var veya sertifikanın yenilenmesi gerekebilir.
Bir çözüm bilen var mı?
Bu durumda yapılacak ilk şey, -v
seçeneği ssh
Böylece, hangi kimlik doğrulama türlerinin denendiğini ve sonucun ne olduğunu görebilirsiniz. Bu durumu aydınlatmaya yardımcı olur mu?
Sorunuza yapılan güncellemenizde, "başka bir yerel Ubuntu'da" bahsediyorsunuz. Ssh özel anahtarını diğer makineye kopyaladınız mı?
Açıkça belirtilmediğinden, sshd varsayılan olarak authorized_keys
Dosyalar. Eğer authorized_keys
olduğu yazılabilir kullanıcı dışında kimse için veya yazılabilir yapılabilir kullanıcı dışında herhangi biri tarafından, sshd ile yapılandırılmadığı sürece kimlik doğrulamayı reddeder StrictModes no
)
"Yazılabilir hale getirilebilir" ile kastedilen, ana dizinlerden herhangi birinin kullanıcı dışında herhangi bir kullanıcı için yazılabilir olması durumunda, bu dizinleri değiştirmeye izin veren kullanıcıların izinleri yetkili_kartları değiştirebilecek / değiştirebilecek şekilde değiştirmeye başlayabilmesidir.
Bu görünmeyecek ssh -v
, sshd tarafından yayımlanan günlüklerde görünecektir (genellikle /var/log/secure
veya /var/log/auth.log
, dağıtıma ve syslogd
konfigürasyonu).
Adam sshd'den (8):
~/.ssh/authorized_keys
Lists the public keys (RSA/DSA) that can be used for logging in
as this user. The format of this file is described above. The
content of the file is not highly sensitive, but the recommended
permissions are read/write for the user, and not accessible by
others.
If this file, the ~/.ssh directory, or the user's home directory
are writable by other users, then the file could be modified or
replaced by unauthorized users. In this case, sshd will not
allow it to be used unless the StrictModes option has been set to
“no”.
Bu hatayı aldım çünkü eklemeyi unuttum -l
seçeneği. Yerel kullanıcı adımım uzak sistemdekiyle aynı değildi.
Bu sorunuzu cevaplamıyor, ama burada benim problemime bir cevap buldum.
Bu mesajı Ubuntu AMI'ye dayanan yeni bir örnekte aldım. PEM'i sağlamak için -i seçeneğini kullanıyordum ama hala "İzin reddedildi (publickey)" gösteriliyordu.
Benim problemim doğru kullanıcıyı kullanmadım. Ssh'i ubuntu @ ec2 ile çalıştırarak normal gibi çalıştı.
Okuması daha kolay bir şey ssh -i
(benim görüşüme göre), tail -f /var/log/auth.log
. Bağlanmaya çalışırken, bağlanmaya çalıştığınız sunucuda çalıştırılmalıdır. Düz metinde hataları gösterecektir.
Bu, sorunumu çözmeme yardımcı oldu:
Kullanıcı gruplarının hiçbirisi AllowGroups'ta listelenmediğinden xx.yy.com adresinden kullanıcı [kullanıcı adı] izin verilmiyor
Kontrol edin / Etc / SSH / sshd_config dosya. Orada, yazan satırı bulun.
PasswordAuthentication no
Bu satırın hayır yerine evet demek için değiştirilmesi gerekiyor. Ayrıca, sshd sunucusunu daha sonra yeniden başlatın.
sudo /etc/init.d/ssh restart
Belki de mevcut posterle alakalı değil, benzer durumlara cevap ararken başkalarını bulan başkalarına da yardımcı olabilir. Amazon'un ssh anahtarlığını oluşturmasına izin vermek yerine, kendi standart, varsayılan, public ssh anahtarınızı Amazon'a yüklemenizi ve bir EC2 örneğini çalıştırdığınızda belirtmenizi öneririm.
Bu, ssh'de "-i" tipi sözdizimini bırakmanıza, standart seçeneklerle rsync'i kullanmanıza ve aynı ssh anahtarını tüm EC2 bölgelerinde kullanmanızı sağlar.
Bu süreç hakkında bir makale yazdım:
Kişisel ssh Anahtarlarını Amazon EC2'ye Yükleme
http://alestic.com/2010/10/ec2-ssh-keys