Bağlantı kesildi: desteklenen kimlik doğrulama yöntemi yok


12

Ben açıklanan aynı kesin sorun var bu konuya , ama cevap kullanıcının ana dizini çünkü benim için doğru kişi, yok kabul olan yerel.

Ben istemci tarafında (Windows 7, PuTTY PAGEANT, PUTTYGEN ve PLINK) her şeyi düzgün yapılandırılmış olduğunu düşünüyorum, ancak ben genel anahtar mekanizması (şifre tabanlı ssh giriş çalışır) yapmak gibi görünmüyor. Tüm adımları, ipuçlarını ve ipuçlarını takip ettim:

Şimdi sunucu tarafında (Linux, sshd) bir şey eksik olabileceğinden şüpheleniyorum, bu yüzden mevcut /etc/ssh/sshd_configiçeriği gönderiyorum :

Protocol 2
SyslogFacility AUTHPRIV
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
Subsystem       sftp    /usr/libexec/openssh/sftp-server

Ne yaptığımı biliyor musun?

GÜNCELLEME: Hata ayıklama modunda sshd çalıştırmak için bir ipucu buldum ve işte çıktı:

/home/winwin> /usr/sbin/sshd -d
debug1: sshd version OpenSSH_4.2p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-d'
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
debug1: Bind to port 22 on 0.0.0.0.
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 4 out 4 newsock 4 pipe -1 sock 7
debug1: inetd sockets after dupping: 3, 3
Connection from 192.168.1.8 port 49828
debug1: Client protocol version 2.0; client software version PuTTY_Release_0.60
debug1: no match: PuTTY_Release_0.60
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.2
debug1: permanently_set_uid: 74/74
debug1: list_hostkey_types: ssh-rsa,ssh-dss
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: client->server aes256-ctr hmac-sha1 none
debug1: kex: server->client aes256-ctr hmac-sha1 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received
debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT
debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done

debug1: userauth-request for user winwin service ssh-connection method none
debug1: attempt 0 failures 0
debug1: PAM: initializing for "winwin"
debug1: PAM: setting PAM_RHOST to "win7client"
debug1: PAM: setting PAM_TTY to "ssh"
Failed none for winwin from 192.168.1.8 port 49828 ssh2
debug1: userauth-request for user winwin service ssh-connection method publickey
debug1: attempt 1 failures 1
debug1: test whether pkalg/pkblob are acceptable
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
Failed publickey for winwin from 192.168.1.8 port 49828 ssh2
Received disconnect from 192.168.1.8: 14: No supported authentication methods available
debug1: do_cleanup
debug1: PAM: cleanup
debug1: do_cleanup
debug1: PAM: cleanup

Şimdi, iki bad ownership or modes for directory /home/winwinmesajı görüyorum ama dizin / home / winwin ve AFAICT için sahiplik veya modları kontrol ettiler:

/home> ls -lad winwin
drwxrwxr-x  21 winwin winwin 4096 Jul 13 21:24 winwin

Ve:

/home/winwin> ls -lad .ssh
drwxr-xr-x  2 winwin winwin 4096 Jul 14 12:06 .ssh

Ve:

/home/winwin/.ssh> ls -lad *
-rw-r--r--  1 winwin winwin 210 Jul 14 12:06 authorized_keys
-rw-r--r--  1 winwin winwin 210 Jul 14 01:58 authorized_keys.pub
-rw-r--r--  1 winwin winwin 394 Jul 14 01:57 authorized_keys.pub.orig

Ne yanlış olabilir ki?

GÜNCELLEME II:chmod 600 Aşağıdaki cevapta önerildiği gibi denedim :

/home/winwin> ls -lad .ssh
drw-------  2 winwin winwin 4096 Jul 14 13:13 .ssh

Ve:

/home/winwin/.ssh> ls -lad *
-rw-------  1 winwin winwin 210 Jul 14 12:06 authorized_keys

Ama yine de çalışmıyor. Neden hala Authentication refused: bad ownership or modes for directory /home/winwinhatayı alıyorum?

Yanıtlar:


9

Gruba yazılabilir izinleri ana dizininizden almayı deneyin:

chmod g-w ~/

.Ssh klasörünüzü yalnızca sizin tarafınızdan okunabilir / yazılabilir / yürütülebilir yapın :

chmod 700 ~/.ssh

Yetkili anahtar dosyanızı yalnızca sizin tarafınızdan okunabilir / yazılabilir hale getirin :

chmod 600 ~/.ssh/authorized_keys

Bu izin hataları kaldırmak gerekir.


Tam olarak önerdiğin gibi yaptım ~/.sshve ~/.ssh/authorized_keys. Hala şans yok. Grubun yazılabilir izinlerini ana dizinin kendisinden almaya gelince, bu kullanıcı / grubun tüm amacı için yaratıldığı için bunu yapamam. Bu kullanıcının giriş dizini grup tarafından yazılabilir olmalıdır (tam olarak aynı ada ve gidere sahip!). Yardım etmeye çalıştığınız için +1.
WinWin

Teşekkür ederim! chmod g-w ~/Kullanıcılardan biri adına macunla ssh yapamadığımda saatlerce delilik ve saç
çekmekten

Gah ya teşekkürler, diğer kullanıcı ile ev dizini yarattım ve chmod gw ~ /
Clarence Liu

5

Başarı!

Tek yapmam StrictModesgereken hayır olarak değiştirmek .

OpenSSH SSS ve http://blogs.nullvision.com/?p=114 bölüm 3.14 uyarınca .

Vay.


Hmm, bu bir çözümden daha çok bir çözüm. Kutumda bir şey kontrol edeyim.
Rob

Benim ls -lad .sshdrwx gösteriyor, chmod 700 ~/.sshve içindeki dosyaların hepsi -rw, yani chmod 600 ~/.ssh/*-SHOULD- çalışıyor.
Rob

Boş ver, testere Bu kullanıcının ev dizini (! Aynı tam adını ve gid sahip) grubu tarafından yazılabilir olmalıdır altında
Rob

Bu şekilde kullanıcısız!
Aşk

3

Benzer bir sorun vardı. Etrafa bakarken ev dizinlerimin şifrelenmiş olduğunu fark ettim ve sorundan şüphelendim. Yetkili anahtarlar dosyasını şifrelenmiş giriş dizininin dışındaki bir dizine kopyaladım, izinleri uygun şekilde değiştirdim (chmod 700 [dir], chmod 600 [dir] / yetkili_anahtarlar, vb.).

Ardından sshd_config dosyanızı, sshd'ye yetkili anahtarlar dosyası için yeni konumdan bahsedecek şekilde düzenleyin, sshd'yi yeniden başlatın ve hepsi bu.

Sorunumu çözmüş görünüyor.


2

Giriş dizini için izinleriniz (veya muhtemelen .ssh / yetkili_anahtarlar klasörünüz) yanlış görünüyor. Bunları düzeltmek, giriş sorununu çözmelidir. Deneyin chmod 600 /home/winwin/.ssh/*
Siz de gerekebilir chmod 700 /home/winwin/.ssh.

SSHd, authorized_keysgüvenlik riski olduğundan, kullanıcı (sahibi olarak) dışında bir kişi tarafından yazılabiliyorsa dosyanızı yüklemeyi reddeder .


Teşekkürler +1. Doğru izinlerin / sahipliğin ne olması gerektiğini hala anlayamadığım için yukarıdaki güncellememe bakın.
WinWin

Sadece denedim chmod 600 /home/winwin/.ssh/*. Yardım etmedi. : - /
WinWin

1
@WinWin dizinde de ayarladınız .sshmı? (Cevabımı güncelledim).
Darth Android

Evet yaptım. Hala şans yok.
WinWin

2

Bunun ile mücadele ve nihayet gibi potansiyel bir güvenlik ihlali neden olmaz bir çözüm buldu StrictModes yok yok.

Ayarlarınızın aşağıdaki gibi olduğundan emin olun:

chmod 0755 / home / {userdir}

chmod 0700 / home / { userdir } /.ssh

chmod 0600 / home / { userdir } /.ssh/authorized_keys

Burada {userdir} söz konusu dizindir.

Anahtar chmod 0755 olup, yalnızca kullanıcının ev sürücüsüne yazabilmesini sağlar. Bunu çalışan kullanıcı yapılandırmamdan kopyaladım ve presto! Diğer kullanıcı adları da çalışmaya başladı!

Umarım bu bana yaptığı gibi başkalarına yardımcı olur ve birkaç saat kazandırır.


1

Bu hata iletisine sshd'nin erişmesini engelleyen SELinux neden olabilir authorized_keys. Bunu dene:

restorecon -FRvv ~/.ssh

( bu cevaptan )


0
chown -R winwin.winwin /home/winwin/
chmod 700 /home/winwin/
find /home/winwin/ -type d -exec chmod 700 {} \;
find /home/winwin/ -type f -exec chmod 600 {} \;

3
Süper Kullanıcıya Hoş Geldiniz! Bu komutların ne yaptığını açıklayabilirsen iyi olur.
slhck

0

Benim durumumda, bu giriş dizininin ait olduğu gerçek kullanıcıdan başka bir sahibi (kök) olan giriş dizini oldu (başka bir kullanıcı için kök ile giriş dizinini oluştururken aptallığım).

Chown [user]:[group] /home/[user] 

bu sorunu çözdü (ve elbette diğer yanıtlarda paylaşılan dosya / dizin izinlerine bağlı kalı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.