Çalışmak için SSH ortak anahtar kimlik doğrulaması alınamıyor [kapalı]


41

Sunucumda CentOS 5.3 çalışıyor. Bir Leopard çalışan Mac'tayım. Bundan kimin sorumlu olduğunu bilmiyorum:

Sunucumda sadece şifre doğrulama ile giriş yapabilirim. PKA’yı kurma adımlarının tamamını ( http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-ssh-beyondshell.html adresinde açıklandığı gibi ) tamamladım . SSH kullanıyorum, hatta publickey doğrulama işlemini bile reddediyor. Komutu kullanmak

ssh -vvv user@host

(-vvv, ayrıntı seviyesini azami seviyeye yükseltir). Aşağıdaki ilgili çıktıyı alıyorum:

debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred keyboard-interactive,password
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password

ardından şifremi istemi takip ettim. İle sorunu zorlamaya çalışırsam

ssh -vvv -o PreferredAuthentications=publickey user@host

alırım

debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred publickey
debug3: authmethod_lookup publickey
debug3: No more authentication methods to try.

Bu nedenle, sunucu publickey kimlik doğrulama yöntemini kabul ettiğini söylese de, SSH istemcim ısrar ediyor, çürütülüyorum. (Yukarıdaki "Açık anahtar:" satırının dikkat çekici yokluğuna dikkat edin.) Herhangi bir öneriniz var mı?

ssh 

basitçe "ssh -v" yi kullanın, daha fazla
ayrıntıya ihtiyaç duymazsınız

Bu soru, artık cevaplanamadığı ve düşük kalitede cevaplar aldığı için kapatılıyor.
UmutsuzN00b

Yanıtlar:


44

Centos makinenizde olup olmadığını kontrol edin:

RSAAuthentication yes
PubkeyAuthentication yes

sshd_config içinde

ve centos makinesinin ~ / .ssh / dizininde uygun izne sahip olduğunuzdan emin olun.

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/*

hile yapmalı.


1
doğru haklar ve dosya adları (bazen yetkili 2 anahtar 2, bazen 2 olmadan) çok önemlidir!
brandstaetter

4
Yetkili_keys dosyasının izni çok önemli bir ipucu. Teşekkürler.
Kane,

7
chmod go-w ~/Zaten o kadar değilse de gerekebilir .
tylerl

1
Ayrıca uzak sunucudaki ev direktörünüzün izinleri olup olmadığını da kontrol edin 755(Jinyu Liu'nun da belirttiği gibi)
Attila Fulop

1
Diğer işletim sistemlerinde SSH config dosyası aşağıdakiler altında da yaşıyor olabilir:/etc/ssh/ssh_config
Yoshua Wuyts 12:16

17

Benzer bir sorun yaşadım - uzaktaki PC, CentOs 6 sunucusunda oturum açmak için ortak anahtar kimlik doğrulamasını kullanamadı. Benim durumumdaki sorun SELinux'la ilgiliydi - giriş yapmaya çalışan kullanıcının ana dizini güvenlik bağlamında mesaj içeriyordu. Bunu restoreconaracı bu şekilde kullanarak çözdüm:

restorecon -Rv /home

2
Sağol Gareth! "restorecon -Rv /root/.ssh" bu işi güzel bir şekilde yaptı.
tbroberg

Daha fazla açıklama yapmak için: bu komut SELinux'a, SELinux etiketlerini, /homegenellikle dizinin düzeninde bulunanlar altındaki dosyalar için sıfırlamasını söylemektedir /home.
rakslice

Kök olarak giriş yapıyorsanız, bu olmalıdırrestorecon -Rv /root
youfu

13

1- / etc / ssh / sshd_config dosyanızı kontrol edin

RSA Onaylama evet
PubkeyAuthentication evet

2-uzak makineden güvenli günlüğü kontrol et, detay sshd daemon hata günlüğüne bak. örneğin benim Ubuntu'mda

# grep 'sshd' / var / log / secure | grep 'Kimlik doğrulama reddedildi' | kuyruk -5
Ağu 4 06:20:22 xxx sshd [16860]: Kimlik doğrulaması reddedildi: dizin / ana sayfa / xxx için hatalı sahiplik veya modlar
Ağu 4 06:20:22 xxx sshd [16860]: Kimlik doğrulaması reddedildi: dizin / ana sayfa / xxx için hatalı sahiplik veya modlar
Ağu 4 06:21:21 xxx sshd [17028]: Kimlik doğrulaması reddedildi: dizin / ana sayfa / xxx için hatalı sahiplik veya modlar
Ağu 4 06:21:21 xxx sshd [17028]: Kimlik doğrulaması reddedildi: dizin / ana sayfa / xxx için hatalı sahiplik veya modlar
Ağu 4 06:27:39 xxx sshd [20362]: Kimlik doğrulaması reddedildi: dizin / ana sayfa / xxx için hatalı sahiplik veya modlar

Sonra dizini / home / xxx için sahipliğini ve kiplerini kontrol et, belki de bunu çalıştırman gerek

chmod 755 / ana sayfa / xxx

1
Sistemin günlük dosyasını kontrol etmek çok önemli bir ipucu.
Kane,

1
755 giriş dizini bana yardımcı oldu - kesinlikle gerekli!
Ben

11

Yerel ve uzak makineler için izinlerinizin doğru olduğunu ve dosya yapısının (özellikle yazım denetimi) doğru olup olmadığını iki kez kontrol edin. Yönlendirdiğiniz URL, hepsini belirtir, ancak neye sahip olduğunuzu kontrol etmeye değer. Normalde izinler olsa da ilgili bir hata verecektir.

CentOS 5.3 kutunuzdaki sshd_config dosyasının PubkeyAuthentication veya RSAAuthentication'a izin verecek şekilde ayarlandığını kontrol ettiniz mi?

CentOS sistemindeki SSH sunucusu günlüklerini kontrol edin - bu daha fazla bilgi sağlayabilir. CentOS'un debian'ın kontrol ettiği kara listeli ssh anahtarını kontrol ettiğinden emin değilim, ancak -vvv çıktısı kadarıyla oldukça sessiz olan ssh publickey reddetmelerini gördüm, ancak günlükler neler olduğunu açıkça açıkladı


7

Anladım! Müşteri tarafında bir sorun olduğu ortaya çıktı. (Sunucu tarafındaki herhangi bir sorunun daha fazla hata ayıklama çıktısı vereceğini düşünüyorum.) Bana bilinmeyen nedenlerden dolayı, Mac'imde / etc / ssh_config dosyası

PubkeyAuthentication = no

Bir satırda yorum yaptım ve şimdi her şey yolunda gidiyor.


4

Dosya / dizin kiplerinin yanında, mülkiyetin doğru olduğundan emin olun! Bir kullanıcının kendi ev dizinini, .ssh / ve içindeki dosyaları olması gerekir.

Ben çalıştırmak zorunda chown -R $user:$user /home/$userbenim ssh arızaları geçmiş olsun.


+1, sistemlerimden birinde .ssh üzerindeki izinler doğruydu, ancak birisi hesabın ana dizini 777 yapmıştı.
GargantuChet

2

Ayrıca bir anahtarı otomatik olarak sağlayıp sağlayamadığını kontrol edin, yoksa veya sadece test etmek için -i yolunu / to / anahtarını kullanın.


2

Bana bir yapılandırma sorunu gibi geliyor. Daniel'in önerdiği gibi kontrol edilmesi gereken iki şey var:

  1. SSH anahtarları $HOME/.ssh/authorized_keysiçeride okunur; ve
  2. SSHd, genel anahtar girişine izin verecek şekilde yapılandırılmıştır.

2

Giriş yapmaya çalıştığınız kullanıcı adını kontrol edin. Varsayılan olarak yerel makinedeki kullanıcı adınızdır.


1

Müşterinin olduğu gibi ssh -vçıkması, protokolde belirli bir adımda bir sorun olduğunu ortaya çıkaracaktır, ancak sunucudaki bir şeyden dolayı müşteriye bunun nedeni hakkında bilgi verilmeyecektir. Neyin yanlış olduğunu bulmak için sunucu günlük dosyalarını kontrol edin. Muhtemelen root, bunu yapmak için izinlere sahip olmanız gerekir. Örneğin, sshdsyslog'da oturum açmak üzere yapılandırılmış bir mesaj için, mesajları bulabilirsiniz /var/log/secure. Bu olanlar gibi:

Authentication refused: bad ownership or modes for directory /home/you/.ssh
Authentication refused: bad ownership or modes for file /home/you/.ssh/authorized_keys

Bu durumda neden bir (aptal) varsayılan olarak defaultbir 0002. Bu, gruba erişim izni anlamına gelir. (Grup adı = kullanıcı adı, ancak yine de.) SSH arka plan programı, kullanıcıdan başkaları tarafından değiştirilebilecek dosyalara güvenmez root(elbette). Sorunu kullanarak çözebilirsiniz chmod.

chmod 700 ~/.ssh # solve the issue
chmod 720 ~/.ssh # reproduce the issue
# or similar for a file

1

Ben sadece aynı sorun 16 tuzak 5.5 için fedora çekirdeği 16 ile erişim sıkışmış

günlükler ve ayrıntılı olarak aynı görünüyordu

Sorun genel anahtardı, bazı sahte veriler aldı, yeniden oluşturdu ve sshd_server'da yayınladı, sshd_client anahtar bilgisini gönderiyor ancak sunucu tarafından tanınmıyor (onaylanmış anahtarların herhangi biriyle eşleşmiyor)


-2

Bununla ısırılan bir başkası. Uzun bir aramadan sonra, açıkça açık anahtar özel anahtar yerine (-i seçeneğiyle) ortak anahtarını ssh ile besliyordum. Doh!

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.