SSH 권한이 거부되었지만 (공개 키) 루트 SSH가 작동 함


15

디지털 오션 우분투 12.04 서버에서 chef로 만든 사용자 계정에 대해 ssh 액세스를 설정하려고합니다. 물방울이 만들어 질 때 맥의 ssh 키를 자동으로 복사하도록 디지털 오션에 옵션을 설정했습니다.

문제없이 루트로 ssh 할 수 있지만 다른 사용자가 인증하지 못합니다. 이것은 일반적인 문제 인 것 같으며 다른 답변 중 일부를 확인하고 자세한 정보를 얻으려면이 명령을 찾았습니다.

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.

나에게 공개 키가 잘못되었음을 의미합니다. 그러나 루트 사용자로 로그인하고로 이동하면 home/otheraccount/.ssh/authorized_keysssh 키가 있음을 알 수 있습니다. 오류가 있다고 생각 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

편집 2 :

의견에서 제안한 바와 같이 : /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입니까?
clement

흥미롭게도 사용자가 잠겨 있다고 불평하고 위의 로그를 추가했습니다.
user2936314

위의 주석을 편집하지 못하게합니다 passwd -u. deploy지금 처럼 ssh 할 수 는 있지만 요리사가 왜 잠금 사용자를 생성하는지 궁금합니다. 크레딧을 줄 수 있도록 위의 의견을 답변으로 복사 / 붙여 넣기하십시오
user2936314

답변:


16
  • SSH 로그인은 여러 가지 이유 (잘못된 디렉토리 / 파일 권한, 잘못된 키 등)와 연결 만 얻을 것이다 클라이언트 실패 할 수 있습니다 Permission denied또는 No more authentication methods to try또는 일부 일반 오류.

  • 로그인 실패에 대한 정확한 이유는 ssh를 로그에서 사용할 수 있습니다 /var/log/auth.log또는 /var/log/secure시스템 로그 구성에 따라 달라집니다.


이것은 내가 본 SSH 로그인 실패 문제에 대한 모든 질문에 대한 최상의 답변입니다! 다른 모든 대답에서 알 수 있듯이 잘못된 권한과 파일 이름을 임의로 추측하는 대신 언급 된 로그를 확인하면 필요한 모든 정보가 포함됩니다!
Yaroslav Admin

정확한 이유는 내 로그 파일에 없습니다. 세션이 닫혀있는 것보다 열려 있다고 말합니다.
VectorVortec

3

CentOS7을 새로 설치해도 같은 문제가 발생합니다.

1. 홈 디렉토리 권한 및 ~ / 스푸핑와 ~ / 스푸핑 / authorized_keys에 권한 (@clement 말한대로)

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

2. / etc / ssh / sshd_config 설정 및 서비스 sshd 재시작 (각 편집 후)을 확인하십시오. 유용한 : sshd_config에서 "LogLevel VERBOSE"를 시도하십시오.

괜찮은 것을 모두 확인한 후에도 여전히 비밀번호 프롬프트가 표시됩니다.

-vvv 로그를 사용하여 ssh 클라이언트를 실행하십시오.

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 -p 5555 -d'에서 sshd를 실행하면 열쇠는 효과가 있었다. 비밀번호가없는 로그인 WTF?

SAD :-( 내가 selinux를 비활성화하고 (/ etc / selinux / config에서 SELINUX = disabled로 설정) 다시 부팅하면 암호없이 로그인하면 정상적으로 작동합니다.

나의 현재 작업 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

그래서 암호없는 ssh 로그인이 작동하도록 selinux에서 작은 것을 바꿀 수 있다는 것을 알고 있으면 좋을 것입니다. 누구나 대답을 향상시킬 수 있습니까?

여기에 동일 : /superuser/352368/ssh-still-asks-for-password-after-setting-up-key-based-authentication/1072999#1072999

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.