SSH Genel Anahtarı - Desteklenen bir kimlik doğrulama yöntemi yok (sunucu genel anahtarı gönderdi)


80

Sanal bir makinede 12.10 sunucu kurulumum var ve ağı köprülenmiş olarak ayarlanmış (temelde anahtarıma bağlı bir bilgisayar olarak görülüyor).

Opensshd ile kurulum yaptım apt-getve sunucuya kullanıcı adımı ve şifremi kullanarak macun kullanarak bağlanabildim.

Daha sonra ortak / özel anahtar kimlik doğrulamasını kullanmaya çalışmaya başladım. Aşağıdakileri yaptım:

  1. PuttyGen kullanarak anahtarları üretti.
  2. Genel anahtarı /etc/ssh/myusername/authorized_keys(Şifrelenmiş ev dizinleri kullanıyorum) konumuna taşındı .
  3. sshd_configÖyle ayarlayın :

    PubkeyAuthentication yes
    AuthorizedKeysFile /etc/ssh/%u/authorized_keys
    StrictModes no
    PasswordAuthentication no
    UsePAM yes
    

Macun veya WinSCP kullanarak bağlandığımda Desteklenen kimlik doğrulama yöntemi yok (sunucu ortak anahtar gönderdi) diyerek hata mesajı alıyorum.

sshdHata ayıklama modunda çalışırsam şunu görürüm:

PAM: initializing for "username"
PAM: setting PAM_RHOST to "192.168.1.7"
PAM: setting PAM_TTY to "ssh"
userauth-request for user username service ssh-connection method publickey [preauth]
attempt 1 failures 0 [preauth]
test whether pkalg/pkblob are acceptable [preauth[
Checking blacklist file /usr/share/ssh/blacklist.RSA-1023
Checking blacklist file /etc/ssh/blacklist.RSA-1023
temporarily_use_uid: 1000/1000 (e=0/0)
trying public key file /etc/ssh/username/authorized_keys
fd4 clearing O_NONBLOCK
restore_uid: 0/0
Failed publickey for username from 192.168.1.7 port 14343 ssh2
Received disconnect from 192.168.1.7: 14: No supported authentication methods available [preauth]
do_cleanup [preauth]
monitor_read_log: child log fd closed
do_cleanup
PAM: cleanup

Bu neden oluyor ve bunu nasıl düzeltebilirim?


Benim durumumda iki AWS örneğim var. Bunlardan biri kusursuz çalışıyor, diğeri Intellij Idea ile bağlantı kurarken çalışıyor, fakat Putty'den değil, ama başlangıçta çalışıyordu. Yani benim durumumda macun hakkında bir şeyler olmalı
Marian Klühspies 23:15

Yanıtlar:


70

Sorun çözüldü:

Açık anahtar dosyamda bir sorun var gibi görünüyor. PuttyGen, şuna benzeyen bir genel anahtar dosyası oluşturur:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20121022"
AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwu
a6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOH
tr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/u
vObrJe8=
---- END SSH2 PUBLIC KEY ----

Ancak, bu işe yaramaz, bu nedenle yapmanız gereken şey anahtarı PuttyGen'de açmak ve sonra oradan kopyalamaktır (bu, anahtarın doğru biçimde ve 1 satırda olmasına neden olur):

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022

Bunu içine yapıştırın, authorized_keyssonra çalışması gerekir.


1
authorized_keysVi'de açtım ve tüm satır sonlarını kaldırdım ve işe yaradı.
Luke,

1
ortak anahtar dosyası nerede bulunur? sadece macun kullanıyorum.
Syler

1
Ben her şeyi yukarıda ama yine sunucu (sunucu genel anahtarı gönderilir) yok desteklenen kimlik doğrulama yöntemlerini gönderiyor yaptılar
Al-Alamin

Bunun işe yaramayacağını nasıl bildiniz / beklenen formatı nerede buldunuz?
Michael

"Bunu yetkili_keys içine yapıştır o zaman çalışması gerekir." @ F21
Mahender Reddy Yasa

20
  1. Edit /etc/ssh/sshd_configdosyasını.
  2. Değişim PasswordAuthenticationve ChallengeResponseAuthenticationiçin yes.

3 A. Ssh'yi yeniden başlatın /etc/init.d/ssh restart.
VEYA
3b. kullansan iyi olurservice sshd restart


Eğer gerçekten vie ftp yazılımlarına bağlanmada sorun yaşıyorsanız bu çok faydalı bir yorum
cnu

Bu benim için çalışıyor!
Asinox

8
Anahtar dosyası üzerinden kimlik doğrulaması bütün amacı etmektir önlemek şifre doğrulaması, bu nedenle aslında belirlesin PasswordAuthenticationiçin no.
Pere

Bana yardım eden tek cevap bu. Genel / özel anahtar kimlik doğrulamasına ihtiyacım yoktu, ama o tuhaf mesajı alıyordum.
Serge Rogatch

Teşekkürler ChallengeResponseAuthentication, bana Debian
10.0'daki

10

Sadece bir ipucu umduğum baş ağrısı ile başkasına yardımcı olabilir umuyorum. F21, dosyayı kaydetmek yerine, anahtarı PuTTYGen penceresinden kopyalamanız gerektiği konusunda haklıdır, ancak kopyalamadan sonra yapıştırma şeklinizin anahtarınızın çalışıp çalışmayacağı üzerinde önemli bir etkisi olabilir. Bazı editörler metni yapıştırdığınızda değiştirir veya yeni satırlarla veya yetkili_keys dosyasını geçersiz kılan bir şey yapar.

Kırılma ihtimalinin en düşük olduğu tespit ettiğim, tam dizgeyi yankılamak ve çıktıyı dosyaya yönlendirmektir. Anahtar dizeyi komut satırına yapıştırmak için PuTTY öğesine sağ tıklandığında, şöyle çalışır (yukarıda verilen örnekle):

echo [right-click-to-paste-here] > /etc/ssh/username/authorized_keys

Bununla sonuçlanacaksın:

echo ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAhGF6GIuMY8FJ1+CNApnSY1N2YSlkYz72Yvwua6N1nFpBklz1+dsIMg4rcTLcF34M/tW5Yz+NUDAw2AEbxQ32FPgw7sAOIXktkYOHtr7mmimiTjkoSCrJh1kqalPSpi8rglT/Bp67Ql2SZwvUFfMzHISryR0EZC4rXP/uvObrJe8= rsa-key-20121022 > /etc/ssh/username/authorized_keys

Bu yöntemin bir başka avantajı, üzerine yazmak yerine> eklemek için >> tuşunu kullanarak bu şekilde birden çok anahtar ekleyebilmenizdir, örneğin:

echo ssh-rsa AAAAB3<...snip...>rJe8= rsa-key-20121022 >> /etc/ssh/username

Birisi yardımcı olur umarım.


Bu, 4096 bitlik anahtarlar için işe yaramaz ... bence karakterlerin terminal sınırını aşıyor
Freedo

1
Daha sonra bunu bash tarihinizden çıkarmak iyi bir fikir olabilir veya olmayabilir.
Jason Powers Murray

@ JasonPowersMurray: bu bir genel anahtardır. Açık anahtarlı şifreleme sistemi , anahtar yayınlandığında güvende kalmak üzere tasarlanmıştır, bu nedenle açık anahtarları bash tarihçesinde ve başka yerlerde günlüğe kaydetme tamamdır.
David Cary

9

Zaten doğru anahtar türünü kullanıyorduk (pem yerine ppk) ..

Bizim durumumuzda, sunucu kullanıcı klasöründeki onaylanmış anahtarlar için dosya izinlerinde bir sorun vardı. -Rw-r - r-- ... olmalı - -ww-rw-r--

ssh dosya izinleri konusunda çok titiz.


Beni doğru yöne yönlendirdiğin için teşekkürler. Bizim durumumuzda hem mal sahibi hem de izinler yanlıştı.
Zsolti

ssh ile erişemediğimizden dosya izinlerini nasıl değiştirebilirim? Bunu yapmanın başka bir yolu var mı?
jit

1
Maden aynı zamanda bir mülkiyet, grup ve izin problemiydi. Burada gösterildiği gibi ( stackoverflow.com/a/36808935/384670 ), kullanmam gereken izinler dosya için 600, dizin için 700 idi. Ayrıca, sahibi ve grubu söz konusu kök dışı kullanıcı olarak değiştirdim.
M Katz

5

ÇÖZÜLDÜ:

  1. PuttyGEN'i indirmeniz ve bir genel ve özel anahtar oluşturmanız gerekir.
  2. Özel anahtarıma bir şifre atadım.
  3. daha sonra özel anahtarı macun içinde yapılandırın. Macun-> SSH-> Kimlik-> Özelinize göz atın.
  4. Özel ve genel anahtar için aynı yolun bulunduğundan emin olun.
  5. Sunucudaki ortak anahtarı yapılandırmanız gerekir. (Benim durumumda sunucu adamla konuştum ve ortak anahtarımı sunucuya ekleyip ekleyemeyeceğini sordum). Bağlantının diğer tarafında (sunucuda) ortak anahtara ihtiyacınız var.

2
"Özel ve genel anahtar için aynı yola sahip olduğunuzdan emin olun." Bunun onunla ilgisi yok. Özel anahtarınızın yanında ortak anahtarınızı
bulundurmanız gerekmez

5

Benim durumumun nedeni, özel anahtar dosyasının (.ppk) Putty kimlik doğrulama aracısında (Pageant) kaldırılmış olmasıdır. Bunu tekrar Pageant'a güncelledim ve bağlantı ondan sonra mükemmel bir şekilde çalıştı.

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.