На компьютере с Archlinux я пытаюсь настроить аутентификацию на основе пароля для пользователя. Оболочка входа пользователей должна быть настроена на git-shell, чтобы не допустить выполнения команды в случае взлома учетной записи.
У моего sshd_config есть правило только для этого одного пользователя git, которое, кажется, работает, поскольку я могу войти в систему с пользователем, когда я устанавливаю оболочку входа в систему bash. Однако, когда оболочка настроена на git-shell, я не могу войти. Я не уверен, как на самом деле связаны оболочка и аутентификация по паролю. Чтобы было ясно: я не использую ChallengeResponseAuthentication, но Authentication.
При попытке войти, когда git-shell включен, я получаю следующую ошибку на стороне пользователя:
myuser@myhosts's password:
Permission denied, please try again.
На стороне сервера при запуске sshd с флагом -d я получаю следующее:
debug1: user myuser matched 'User myuser' at line 135
debug1: PAM: initializing for "myuser"
debug1: PAM: setting PAM_RHOST to <homeip>
debug1: PAM: setting PAM_TTY to "ssh"
debug1: userauth-request for user myuser service ssh-connection method password [preauth]
debug1: attempt 1 failures 0 [preauth]
debug1: PAM: password authentication failed for myuser: Authentication failure
Failed password for myuser from <homeip> port 57470 ssh2
Успешная попытка использования bash, так как оболочка выглядит так:
debug1: user myuser matched 'User myuser' at line 135
debug1: PAM: initializing for "myuser"
debug1: PAM: setting PAM_RHOST to "<homeip>"
debug1: PAM: setting PAM_TTY to "ssh"
debug1: userauth-request for user myuser service ssh-connection method password [preauth]
debug1: attempt 1 failures 0 [preauth]
debug1: PAM: password authentication accepted for myuser
debug1: do_pam_account: called
Accepted password for myuser from <homeip> port 57499 ssh2
Любые идеи относительно того, почему это происходит и как я мог это исправить? Простой способ - просто установить ключ для машин, которые я на самом деле использую, но меня раздражает, что я не могу заставить это работать.
Редактировать, выводить с DEBUG3:
debug3: send packet: type 51 [preauth]
debug3: receive packet: type 50 [preauth]
debug1: userauth-request for user myuser service ssh-connection method password [preauth]
debug1: attempt 2 failures 1 [preauth]
debug2: input_userauth_request: try method password [preauth]
debug3: mm_auth_password entering [preauth]
debug3: mm_request_send entering: type 12 [preauth]
debug3: mm_auth_password: waiting for MONITOR_ANS_AUTHPASSWORD [preauth]
debug3: mm_request_receive_expect entering: type 13 [preauth]
debug3: mm_request_receive entering [preauth]
debug3: mm_request_receive entering
debug3: monitor_read: checking request 12
debug3: PAM: sshpam_passwd_conv called with 1 messages
debug1: PAM: password authentication failed for myuser: Authentication failure
debug3: mm_answer_authpassword: sending result 0
debug3: mm_request_send entering: type 13
Failed password for myuser from <homeip> port 52928 ssh2
debug3: mm_auth_password: user not authenticated [preauth]
debug3: userauth_finish: failure partial=0 next methods="publickey,password" [preauth]
debug3: send packet: type 51 [preauth]