Відключено: відсутні підтримувані методи аутентифікації


12

У мене є та сама точна проблема, що описана в цій темі , але відповідь, прийняту там, не є для мене правильною, тому що домашній каталог користувача є локальним.

Я думаю, що я все правильно налаштував на стороні клієнта (Windows 7, PAGEANT PUTANT, PUTTYGEN та PLINK) Windows, але я, здається, не змушував механізм відкритого ключа працювати (логін на основі пароля ssh працює). Я виконував усі кроки, підказки та підказки:

Тепер я підозрюю, що я можу щось бракувати на стороні сервера (Linux, sshd), тому я публікую поточний /etc/ssh/sshd_configвміст:

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

Будь-яка ідея, що я роблю неправильно?

ОНОВЛЕННЯ: Я знайшов підказку для запуску sshd в режимі налагодження , і ось вихід:

/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

Тепер я помічаю два bad ownership or modes for directory /home/winwinповідомлення, але я перевірив право власності або режими для каталогу / home / winwin та AFAICT, що вони в порядку:

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

І:

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

І:

/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

Що може бути неправильним?

ОНОВЛЕННЯ II: Я спробував, chmod 600як було запропоновано у відповіді нижче:

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

І:

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

Але це все ще не працює. Чому я все-таки отримую Authentication refused: bad ownership or modes for directory /home/winwinпомилку?

Відповіді:


9

Спробуйте взяти дозволи для запису групи з домашнього каталогу:

chmod g-w ~/

Зробіть своє .ssh папка читання / запис / виконуваний тільки вам :

chmod 700 ~/.ssh

Зробіть файл авторизованих ключів читабельним / доступним для запису лише ви :

chmod 600 ~/.ssh/authorized_keys

Це повинно усунути помилки дозволів.


Я зробив так, як ви запропонували ~/.sshі ~/.ssh/authorized_keys. Ще не везе. Що стосується отримання дозволу для запису групи з самого домашнього каталогу, я не можу цього зробити, оскільки це може підірвати всю ціль цього користувача / групи, для якої створено. Домашня директорія цього користувача повинна записуватися групою (мати однакове точне ім’я та gid!). +1 за спробу допомогти.
WinWin

Дякую! chmod g-w ~/врятувало мене після години божевілля та витягування волосся, коли я не зміг зіпсувати шпаклівку від імені одного з користувачів, а інші користувачі працюють добре ...
PavelS

Да, дякую, я створив свій домашній каталог з іншим користувачем, і мені не вистачало chmod gw ~ /
Кларенс Лю

5

Успіху!

Все, що я мав зробити, - це змінити StrictModesна ні .

Згідно з розділом 3.14 у FAQSS OpenSSH та http://blogs.nullvision.com/?p=114 .

Ого.


Хм, це швидше рішення, ніж рішення. Дозвольте мені перевірити щось на своєму ящику.
Роб

Моя ls -lad .sshпоказує drwx, тому chmod 700 ~/.sshфайли всередині -rw, так chmod 600 ~/.ssh/*-SHOULD- працюють.
Роб

Nevermind, saw Домашній каталог цього користувача повинен бути записаний групою (з таким самим точним ім’ям та gid!) Нижче
Rob

Цей спосіб безкорисний!
Любов

3

Мав подібне питання. Під час роздуму я помітив, що в мене домашні каталоги зашифровані, і підозрював, що це проблема. Я скопіював файл авторизованих ключів у каталог за межами зашифрованого домашнього каталогу, відповідним чином змінив дозволи (chmod 700 [dir], chmod 600 [dir] / avtor_keys тощо).

Потім відредагуйте sshd_config, щоб повідомити sshd про нове місце для файлу авторизованих ключів, перезавантажте sshd, і все.

Здається, виправили мою проблему.


2

Схоже, ваші дозволи на домашній каталог (або, можливо, папку .ssh / санкціонований_кіс) неправильні. Виправлення цих питань має вирішити проблему з входом. Спробуйте, chmod 600 /home/winwin/.ssh/*
можливо, вам chmod 700 /home/winwin/.sshтакож знадобиться .

SSHd відмовиться завантажувати ваш authorized_keysфайл, якщо його може написати хтось, крім вашого користувача (як власника), оскільки це загроза безпеці.


Дякую +1 Дивіться моє оновлення вище, оскільки я досі не можу зрозуміти, якими мають бути правильні дозволи / права власності.
WinWin

Я просто спробував chmod 600 /home/winwin/.ssh/*. Це не допомогло. : - /
WinWin

1
@WinWin Ви також встановили його в .sshкаталозі? (Я оновив свою відповідь).
Darth Android

Так. Ще не везе.
WinWin

2

Я з усіх сил через це і , нарешті , знайшли рішення , яке не викликає потенційну пролом в безпеці , як StrictModes Немає робить.

Переконайтесь, що ваші налаштування такі:

chmod 0755 / домашня сторінка / {userdir}

chmod 0700 / home / {userdir} /.ssh

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

Де {userdir} - каталог, про який йде мова.

Ключ - chmod 0755, який забезпечує можливість запису на домашній диск лише користувачеві. Я скопіював це з конфігурації користувача, який працював, і, престо! Інші імена користувачів також почали працювати!

Сподіваюся, це допомагає іншим, як це зробив я, і економить вам пару годин часу.


1

Це повідомлення про помилку також може бути спричинене тим, що SELinux запобігає доступу до sshd authorized_keys. Спробуйте це:

restorecon -FRvv ~/.ssh

цієї відповіді )


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
Ласкаво просимо до Супер Користувача! Було б добре, якби ви могли пояснити, що роблять ці команди.
slhck

0

У моєму випадку це домашній каталог, який мав іншого власника (root), ніж власне користувач, до якого належить цей домашній каталог (моя дурість при створенні домашнього dir з root для іншого користувача).

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

вирішив це питання (і, звичайно, дотримуйтесь дозволів на файл / dir, як це поділено в інших відповідях)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.