Спроба ввести SSH на віддалений комп'ютер, але все-таки просить пароль


18

Спроба ввести SSH на віддалений комп'ютер, але все-таки просить пароль.

У мене є декілька комп'ютерів, на яких працює SElinux, і лише один з них важко використовує ssh без пароля.

Я зробив ssh-copy-id, і я можу побачити свій ключ у .ssh / санкціонованих_кеях.

Я chmod 700 .ssh і chmod 600 всі файли в ./ssh/*

Якщо я роблю ssh -v, це мій вихід:

OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to wcmisdlin05 [10.52.208.224] port 22.
debug1: Connection established.
debug1: identity file /home/jsmith/.ssh/identity type -1
debug1: identity file /home/jsmith/.ssh/id_rsa type 1
debug1: identity file /home/jsmith/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'wcmisdlin05' is known and matches the RSA host key.
debug1: Found key in /home/jsmith/.ssh/known_hosts:9
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_501' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_501' not found

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Next authentication method: publickey
debug1: Offering public key: /home/jsmith/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/jsmith/.ssh/identity
debug1: Trying private key: /home/jsmith/.ssh/id_dsa
debug1: Next authentication method: password

Може хтось скажіть, будь ласка, чому це не працює на цьому віддаленому комп'ютері?


5
Загляньте /var/log/secure(якщо це дозволи) та /var/log/messages(якщо це SELinux.) Інакше це невідповідність між тим, ~/.ssh/authorized_keysщо є, і тим, що надсилається клієнтом SSH.
Аарон Коплі

Відповіді:


17

Я часто стикався з подібною помилкою на машинах CentOS 6 із залученням ssh-copy-idта SELinux.

Коли ssh-copy-idстворює файли авторизованих ключів, він створює їх з належними дозволами, але з неправильною міткою SELinux. Виправленням цього є відновлення міток до стандартних параметрів політики за допомогою цієї команди:

restorecon -R ~/.ssh


1
Гарна відповідь. Але для новачка SELinux також було б цікаво знати, як перевірити список та перевірити дозволи.
zrajm

14

Ці речі завжди набагато простіше налагоджувати з боку сервера, якщо це можливо. Якщо ви можете запустити sshd на іншому порту в режимі налагодження, він негайно скаже вам, чому ключ відхиляється (я дивлюся, що ваш домашній каталог підлягає групі для запису). Наприклад, ви можете запустити sshd в режимі налагодження на порту 2222 з /usr/sbin/sshd -d -p 2222, а потім підключитися до ssh -p 2222 user@remotehost.


4
Велике спасибі за ваші дикі здогадки (домашній каталог призначений для запису групи). Це був саме мій випадок.
Сергій Куренков

@skwllsp - прийміть цю відповідь, якщо вона є правильною для вашого випадку.
Мисливець на оленів

1
@Deer Hunter, це питання задала інша людина, а не я. Я не можу прийняти цю відповідь.
Сергій Куренков

@skwllsp - старший момент від мене, вибач.
Мисливець на оленів

chmod 744 до мого домашнього каталогу вирішив це - це було пов’язано з цією відповіддю, дякую!
Брандт Соловій

3

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

ssh -vНалагодження допомогло. Ключ прийнято:

debug1: Found key in /var/lib/amanda/.ssh/known_hosts:19
debug1: ssh_rsa_verify: signature correct

І тоді я отримую помилку

debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_502' not found

Моє виправлення полягало в тому, щоб вимкнути selinux з, setenforce 0а потім відключити / etc / selinux. Тоді для мене працював ssh без паролів.


1

Я пережив це десь тому на RHEL5 (я не знаю, чи це дистрибутив, який ви використовуєте), і виявив, що це було лише тоді, коли я використовував ssh-copy-id. Спробуйте скапірувати ключовий файл у потрібній папці та, звичайно, скинути дозволи


0

У моєму випадку проблема полягала в неправильному форматі authorized_keysфайлу.

Там не повинно бути не новою рядки між визначенням формату ( ssh-rss, ssh-dss..) і самого відкритого ключа.


0

Раніше у мене були проблеми з ssh та keyfiles. З цього приводу перейменування мого ключа id на " id_rsa" допомогло. На жаль, у мене є різні ключі для різних серверів. Тож такий підхід має обмежену корисність. Це може допомогти одноразово.

По-друге, сьогодні я знову маю цю помилку лише в одному сеансі XTerm, і все працює чудово в 6 інших сесіях xterm на тому ж сервері / шланговій машині. Тому я порівнював свої результати з envобох сеансів. Я виявив, що це робоча сесія, яка відсутня в неробочій сесії:

SSH_AUTH_SOCK=/run/user/1001/keyring/ssh 

Я вставив це завдання в неробочий сеанс:

export SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
ssh  user@host
... Welcome ...

Іншими словами, це рішення спрацювало для мене.

Я трохи перевірив SSH_AUTH_SOCKET. З цієї відповіді:

шлях сокета файлу unix, який агент використовує для зв'язку з іншими процесами

Я думаю, що це важливо для вирішення ключових питань на основі результату.


-1

debug1: Пропозиція відкритого ключа: /home/jsmith/.ssh/id_ rsa

...

debug1: Спроба приватного ключа: /home/jsmith/.ssh/id_ dsa

Мені здається, що приватний / відкритий ключ просто не відповідають. Імена ключів говорять нам, що відкритий ключ - це ключ RSA, а приватний - DSA.

Спробуйте створити нову пару та scpвідкритий ключ на сервері.


можна переконатися, що це насправді так, порівнявши відбитки двох клавіш із ssh-keygen -l -f ~/.ssh/id_rsa' and ssh-keygen -l -f ~ / .ssh / id_rsa.pub`. Я не вірю, що він навіть запропонував би ключі, якщо невідповідність. Я думаю, що його лише те, що один відхиляється сервером з ще не визначеної причини, тому він намагається інший.
тушковане

-2

Я рекомендую перевірити повноваження щодо ./ssh та домашнього каталогу користувача, ключового файлу та файлу санкціонованих ключів, оскільки ніхто інший, ніж власник, повинен дозволити писати та читати там, якщо ви хочете, щоб з'єднання ssh без паролів працювало. Це стосується як вихідних, так і цільових машин. Якщо чесно, іноді це працює, навіть якщо є більші права, але це не повинно.


1
Будь ласка , перевірте: serverfault.com/questions/464411 / ... . Ваше повідомлення також зайве, оскільки ви не читали того, що написали інші.
Мисливець на оленів
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.