Authority_keys ile ssh üzerinden otomatik giriş neden çalışmıyor?


12

Özel / genel dsa-keypair oluşturdum. Genel anahtarı sunucuya yerleştirdim

~/.ssh/authorized_keys

Her şey diğer sunucum gibi kuruldu, ancak sunucu çabalarımı görmezden geliyor gibi görünüyor.


İstediğiniz hiçbir şeyin devre dışı olmadığını kontrol edin /etc/ssh/ssh_configve /etc/ssh/sshd_configdoğrulayın.
Kristopher Johnson

Sshd_config dosyasını da kontrol etmek isteyeceksiniz.
Vagnerr

Teşekkürler. Cevabı güncelledim (başlangıçta sadece ssh_config).
Kristopher Johnson

Yukarıdaki tartışmaların tümü, opensh tarzı bir ssh kullanıyorsanız mükemmeldir. Sistem ssh2 kullanıyorsa, anahtarları yönetmek için tamamen farklı bir yol var. Bu makalede nasıl ve ne olduğu anlatılmaktadır. burnz.wordpress.com/2007/12/14/…
chris

1
Genellikle /var/log/auth.logDebian sistemlerini veya /var/log/secureRedHat sistemlerini kontrol etmek , neyin yanlış anlaşıldığına dair net bir tavsiye vermelidir (genellikle izin sorunları)
Giovanni Toraldo

Yanıtlar:


15

Sorununuz diğer yanıtlar tarafından zaten çözülmüş olsa da, kendimi oturum açmadan önce sshd_config değişikliklerini doğrulamamak için yeterli sayıda makineden kilitledim, bu nedenle sshd yapılandırma değişikliklerinin gelecekteki hata ayıklaması için yararlı olabilecek aşağıdaki işlemle karşılaştım:

Testten sonra davranış beklediğiniz gibi olana kadar etkin bir ssh bağlantısını BAĞLAMAYIN.

a. sshd'nin ne yapması gerektiğini düşündüğünüzü doğrulayın

b. "-t" kullanarak yapılandırmanın geçerli olduğunu doğrulayın

c. izleyebileceğiniz sunucunun ayrıntılı bir 'test' sürümünü başlatın

d. İzleyebileceğiniz ayrıntılı bir 'test' istemci bağlantısı başlatın


a. sshd'nin ne yapması gerektiğini düşündüğünüzü doğrulayın

Tüm yorum olmadan sshd yapılandırma dosyasını aşağıdaki gibi bir şeyle gözden geçirin (sshd_config dosyasının doğru dosya olduğunu ve / etc / ssh içinde olduğunu varsayarak)

$ grep -v "^ #" / etc / ssh / sshd_config | grep -v "^ $"

Bu sadece bazı şeyleri temizler, bu yüzden neyi değiştirdiğimizi düşündüğümüzü doğrularız (bunun doğru olup olmadığı zorunlu değildir.)

b. "-t" kullanarak yapılandırmanın geçerli olduğunu doğrulayın

Sshd'lerin adam sayfasından,

-t Test modu. Yalnızca yapılandırma dosyasının geçerliliğini ve anahtarların uygunluğunu kontrol edin. Bu, yapılandırma seçenekleri değişebileceğinden sshd'yi güvenilir bir şekilde güncellemek için kullanışlıdır.

Diğer değişikliklerin daha ince koşulları olabilir. Örneğin, ortak anahtar kimlik doğrulamasının doğru şekilde çalıştığından emin olana kadar parola kimlik doğrulamasını devre dışı bırakmayın.

c. izleyebileceğiniz sunucunun ayrıntılı bir 'test' sürümünü başlatın

sudo / usr / sbin / sshd -ddd -p 9999

Bu, mevcut ve çalışan oturumunuzu etkin tutar, ancak yeni yapılandırma değişikliklerinizi doğrulamak için size başka bir sshd örneği verir. SSHD artık ön planda kullanıcı tanımlı bir bağlantı noktasına (örneğimizde 9999) çalışıyor ve / var / log / authlog (veya muhtemelen /var/log/auth.log) içinde izleyebileceğiniz çok sayıda gürültülü hata ayıklama bilgisi gönderiyor işletim sisteminizde.)

d. İzleyebileceğiniz ayrıntılı bir 'test' istemci bağlantısı başlatın

Hatanızda daha iyi hata ayıklamanıza neden olabilecek daha fazla bilgi görüntülemek için ssh istemci bağlantısını ayrıntılı modda çalıştırın.

$ ssh -vvv -p 9999 sunucu adı

Artık sunucunuzun günlük dosyalarında veya istemcinin bağlantı ekranında sorununuzu yalıtmak için yeterli bilgiye sahip olmalısınız.

Çözüm genellikle dosya izinlerine gelir (Magnar ve setatakahashi tarafından gösterildiği gibi)

İyi şanslar


Ayrıca beklediğiniz şeyi yaptığını emin olmak için istemci ucundaki ssh_config dosyasını kontrol etmelisiniz. Yorumları grep için aşağıdaki gibi bir şey kullanın:> grep -v "^ #" / etc / ssh / ssh_config | grep -v "^ $"
samt

İstemci ssh yapılandırması her zaman düzeltilebilir, yanlış yapılandırdıysanız kilitlendiğiniz sunucudur.
Soviero

33

Sahip özellikleri yanlışsa sunucu yetkili_anahtarlar dosyanızı yoksayar. Bunu bu şekilde değiştirmek sorunu çözer:

chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/authorized_keys

6
ssh -vvv -l kullanıcı adı server.domain geçerli bir anahtar gönderip göndermediğinizi size söyleyecektir
Dave Cheney

Bazen sshd giriş dizinindeki kötü izinler hakkında şikayet gördüm - bu yüzden setatakahashi yaptığı gibi listeye "chmod o-rwx ~" (veya en azından "chmod ow ~") eklemek istiyorum. Bu genellikle günlük dosyası izlendiğinde belirginleşir - orada gördüğüm hata iletileri her zaman doğru yönü gösterir.
Olaf

Bu cevap en olası görünüyor, ancak Dave Cheney'in yorumu gerçekten neler olduğunu görmenin tek yoludur. Ayrıca sunucu günlüklerini kontrol edin.
dwc

Bu benim sorunumdu. Saatlerce kafamı dövüyorum. Çok teşekkürler!
Sam Soffes

1
Bu hile yaptı, ama önceki izinlerim sırasıyla 0775ve 0644idi. İzinleri azaltmak neden yardımcı oldu? Bu bir yerde yapılandırılmış bir güvenlik önlemi mi?
Dean

11

chmod 700 $ ~

$ chmod 700 ~ / .ssh

$ chmod 600 ~ / .ssh / yetkili_anahtarlar

/ Etc / ssh / sshd_config içindeki bu özellikleri kontrol edin

$ sudo grep PubkeyAuthentication / etc / ssh / sshd_config

$ sudo grep Protokolü / etc / ssh / sshd_config


2
~ Hakkında mükemmel bir nokta, kendinizden başka kimsenin ana dizininize yazamayacağından emin olmalısınız, aksi takdirde ~ / .ssh dizininizi yeniden adlandırabilirler
Dave Cheney

bu son chmod olmalı: $ chmod 600 ~/.ssh/authorized_keysdeğil$ chmod 600 ~/.sHh/authorized_keys
SooDesuNe

3
öznitelik değerleri ne olmalı olmak ?
Michael

0

Bir başka önemli tuzak daha ..

Sizin ise ev dizini şifrelenir sshd ~ / .ssh / authorized_keys erişemez ..

Bu cevaba bakın

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.