Дозвіл SSH відхилений (відкритий ключ), але root ssh працює


15

Я намагаюся налаштувати ssh-доступ для облікового запису користувача, який я створив разом з шеф-кухарем на цифровому океані-сервері ubuntu 12.04. У мене були встановлені параметри в цифровому океані для автоматичного копіювання ssh-ключа мого Mac, коли крапелька створена.

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

ssh -vvv -i id_rsa user@serverIP

Журнали для кореневого користувача (який успішно працює) за допомогою цієї команди є

відлагоджувати

1: Offering RSA public key: /Users/evan/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug2: input_userauth_pk_ok: fp snip!
debug3: sign_and_send_pubkey: snip!
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).

невдалий користувач:

відлагоджувати

1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/evan/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/evan/.ssh/id_dsa
debug3: no such identity: /Users/evan/.ssh/id_dsa: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.

Що для мене означає, що відкритий ключ неправильний. Але, якщо я ввійду як користувач root і перейду до home/otheraccount/.ssh/authorized_keys, я можу побачити, що мій ключ ssh є там. Я подумав, що, можливо, сталася помилка, тому я це зробив, cp .ssh/authorized_keys ~/home/otheraccout/.ssh/authorized_keysале це не допомогло. Я не знаю, де ще шукати.

мій etc/ssh/sshd_conig:

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
"sshd_config" 88L, 2508C
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

# GS

SAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding no
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60

AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM no
Banner /etc/ssh_banner

редагувати:

drwx------ 2 deploy deploy 4096 Apr 20 06:00 .ssh
-rw------- 1 deploy deploy 820 Apr 20 05:35 authorized_keys

Edit2:

Як запропоновано в коментарях /var/log/authlog:

Apr 21 04:59:30 localhost sshd[586]: User deploy not allowed because account is locked
Apr 21 04:59:30 localhost sshd[586]: input_userauth_request: invalid user deploy [preauth]

Я намагався це зробити, sudo usermod --expiredate -1 deployі це повернулосяno changes


1
Чи правильні ваші дозволи? ~/home/otheraccount/.sshповинні мати 700і ~/home/otheraccount/.ssh/authorized_keysповинні мати 600дозвіл, і обидва файли повинні належатиotheraccount
clement

Я думаю, що вони правильні, розгортання - це інший рахунок: drwx------ 2 deploy deploy 4096 Apr 20 06:00 .ssh -rw------- 1 deploy deploy 820 Apr 20 05:35 authorized_keys
user2936314,

які рядки журналів у serverIP( /var/log/auth.log), коли ви намагаєтесь увійти як deployкористувач?
Клемент

цікаво, він скаржиться, що користувач заблокований, я додав журнали вище.
користувач2936314

не дозволить мені редагувати вищевказаний коментар: я виправив це за допомогою passwd -u. Можу ввійти, як deployзараз, але дуже цікаво, чому мій шеф-кухар розгортає створення створених користувачів. Скопіюйте / вставте свій коментар вище як відповідь, щоб я міг дати вам кредит
user2936314

Відповіді:


16
  • SSH логіни можуть зазнати невдачі з різних причин (дозволу неправильно каталоги / файлів, невірні ключі і т.д.) і з'єднувальний клієнту буде просто отримати Permission deniedабо No more authentication methods to tryабо яку - то загальну помилку.

  • Точна причина відмови входу буде доступна в журналі ssh /var/log/auth.logабо /var/log/secureзалежно від конфігурації syslog.


Це найкраща відповідь на всі питання щодо невдалої проблеми з входом в SSH, яку я коли-небудь бачив! Замість того, щоб випадково здогадуватися про неправильні дозволи та назви файлів, як підказують усі інші відповіді, просто перевірте згадані журнали, і вони містять всю необхідну інформацію!
Ярослав Адмін

Точна причина не в моєму журналі. Все сказане - це те, що сесія була відкритою, ніж закритою.
VectorVortec

3

Ця ж проблема для мене в установці свіжої CentOS7.

1. перевірте дозволи на домашній dir та дозволи ~ / .ssh та ~ / .ssh / pooblasti_keys (як говорить @clement)

chmod o-w ~/; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys

2. перевірте / etc / ssh / sshd_config налаштування та & перезапуск служби sshd (після кожного редагування) Корисно: спробуйте "LogLevel VERBOSE" в sshd_config.

Я все-таки отримав підказку пароля після перевірки, що все було нормально.

Запустіть ssh-клієнт із -vvv-журналами:

debug3: send_pubkey_test 
debug2: we sent a publickey packet, wait for reply

Журнали сервера (/ var / log / secure):

Failed publickey for * from * port * ssh2: RSA *

ssh-сервер не надсилає клієнтові більше інформації про помилку, оскільки це буде ризиком для безпеки.

Якщо я запустив sshd на інший порт 'sshd -p 5555 -d'. Ключ спрацював. Добре ввійти без пароля. WTF?

SAD :-( сказати, тоді я відключив selinux (встановити SELINUX = вимкнено в / etc / selinux / config) і перезавантажити. Логін без пароля тоді працював нормально.

мої поточні робочі налаштування sshd_config:

[root@hp-bl-05 ~]# grep -vE "^#|^$" /etc/ssh/sshd_config  
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
SyslogFacility AUTHPRIV
LogLevel VERBOSE
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
HostbasedAuthentication yes
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
UseDNS no
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem   sftp    /usr/libexec/openssh/sftp-server

Тож було б добре знати, чи можемо ми змінити щось невелике в selinux, щоб отримати без паролів sh логін для роботи. Чи може хтось покращити відповідь?

те саме тут: /superuser/352368/ssh-still-asks-for-password-after-setting-up-key-based-authentication/1072999#1072999

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