SSH 서버에 로그인 : 권한이 거부되었습니다. 다시 시도하십시오


9

사용자 이름과 비밀번호를 사용하여 ssh 서버에 로그인하려고하는데 올바른 비밀번호를 입력하면이 오류가 발생합니다.

Permission denied, please try again.

나는 할 수 있지만, 다른 컴퓨터에 pubkey를 사용하여 로그인하지만 정기적으로 암호 인증을 해제하지 않았습니다. 내가 비활성화 한 유일한 것은 루트 로그인이었습니다.

내 sshd_config 파일은 다음과 같습니다.

# 패키지 생성 구성 파일
# 자세한 내용은 sshd_config (5) 맨 페이지를 참조하십시오

# 우리가 듣는 포트, IP 및 프로토콜
포트 22
# sshd가 바인딩 할 인터페이스 / 프로토콜을 제한하려면이 옵션을 사용하십시오
#ListenAddress ::
#ListenAddress 0.0.0.0
프로토콜 2
# 프로토콜 버전 2 용 호스트 키
HostKey / etc / ssh / ssh_host_rsa_key
HostKey / etc / ssh / ssh_host_dsa_key
HostKey / etc / ssh / ssh_host_ecdsa_key
보안을 위해 #Privilege Separation이 설정되어 있습니다.
UsePrivilegeSeparation 예

# 임시 버전 1 서버 키의 수명 및 크기
KeyRegenerationInterval 3600
서버 키 비트 768

# 로깅
SyslogFACility AUTH
LogLevel 정보

# 인증 :
LoginGraceTime 120
허가 루트 로그인
엄격한 모드 예

RSA 인증 예
Pubkey 인증 예
#AuthorizedKeysFile % h / .ssh / authorized_keys

# 사용자의 ~ / .rhosts 및 ~ / .shosts 파일을 읽지 마십시오
호스트 무시
# 이것이 작동하려면 / etc / ssh_known_hosts에 호스트 키가 필요합니다

RhostsRSA 인증 번호
# 프로토콜 버전 2와 유사
호스트 기반 인증 아니요
# RhostsRSAAuthentication에 대해 ~ / .ssh / known_hosts를 신뢰하지 않으면 주석 해제
#IgnoreUserKnownHosts 예

# 빈 암호를 사용하려면 yes로 변경하십시오 (권장하지 않음).
허가 비우기 비밀번호

# 챌린지-응답 암호를 활성화하려면 yes로 변경하십시오 (
# 일부 PAM 모듈 및 스레드)
ChallengeResponse 인증 번호

# 터널링 된 일반 텍스트 비밀번호를 비활성화하려면 no로 변경
비밀번호 인증 예

# Kerberos 옵션 
#Kerberos 인증 번호
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup 예

# GSSAPI 옵션
#GSSAPI 인증 번호
#GSSAPICleanupCredentials 예

전달 예
X11DisplayOffset 10
프린트
PrintLastLog 예
TCPKeepAlive 예
#UseLogin no

#MaxStartups 10:30:60 
# 배너 /etc/issue.net

# 클라이언트가 로케일 환경 변수를 전달하도록 허용
수락 LANG LC_ *

서브 시스템 sftp / usr / lib / openssh / sftp-server

# PAM 인증, 계정 처리,
# 및 세션 처리. 이것이 활성화되면 PAM 인증은
# ChallengeResponseAuthentication을 통해 허용되며
# 비밀번호 인증. PAM 구성에 따라
# ChallengeResponseAuthentication을 통한 PAM 인증이 무시 될 수 있음
# "비밀번호없이 PermitRootLogin"설정.
# PAM 계정과 세션 확인을하지 않고 실행하려는 경우
# PAM 인증을 활성화 한 다음 비밀번호 인증을 설정하십시오.
# and ChallengeResponse 인증이 '아니요'입니다.
사용 PAM 예 
UserKnownHosts 무시
비밀번호 인증 예

최근 2 줄을 추가하여 작동 시키려고했습니다. (나는 다른 vps에 그것들을 가지고 있으며 거기서 일합니다)

내 사용자의 ~ / .ssh / 디렉토리 목록은 다음과 같습니다.

ls -la /home/skerit/.ssh
총 16
drwx ------ 2 skerit skerit 4096 2011-06-25 15:11.
drwxr-xr-x 4 스커 릿 스커 릿 4096 2011-07-07 21:05 ..
-rw-r--r-- 1 skerit skerit 1882 2011-06-25 15:15 certified_keys
-rw-r--r-- 1 skerit skerit 884 2011-06-23 22:59 known_hosts 

이것은 / usr / sbin / sshd -d의 출력입니다.

debug1 : 사용자 skerit 서비스 ssh- 연결 방법에 대한 userauth-request 없음
debug1 : 시도 0 실패 0
debug1 : PAM : "skerit"초기화
debug1 : PAM : PAM_RHOST를 "82.197.70.70"으로 설정
debug1 : PAM : PAM_TTY를 "ssh"로 설정
debug1 : 사용자 skerit 서비스 ssh 연결 방법 publickey에 대한 userauth-request
debug1 : 시도 1 실패 0
debug1 : pkalg / pkblob가 허용 가능한지 테스트
debug1 : 블랙리스트 파일 확인 /usr/share/ssh/blacklist.RSA-2048
debug1 : 블랙리스트 파일 /etc/ssh/blacklist.RSA-2048 확인
debug1 : temporary_use_uid : 1000/1000 (e = 0 / 0)
debug1 : 공개 키 파일 /home/skerit/.ssh/authorized_keys 시도
debug1 : fd 4 지우기 O_NONBLOCK
debug1 : restore_uid : 0/0
debug1 : temporary_use_uid : 1000/1000 (e = 0 / 0)
debug1 : 공개 키 파일 /home/skerit/.ssh/authorized_keys2 시도
debug1 : 인증 된 키 '/home/skerit/.ssh/authorized_keys2'를 열 수 없습니다 : 해당 파일 또는 디렉토리가 없습니다.
debug1 : restore_uid : 0/0
82.197.70.70 포트 57154 ssh2에서 skerit에 대한 공개 키 실패
debug1 : 사용자 skerit 서비스 ssh- 연결 방법 비밀번호에 대한 userauth-request
debug1 : 시도 2 ​​실패 1
debug1 : PAM : Skerit에 대한 비밀번호 인증 실패 : 인증 실패
82.197.70.70 포트 57154 ssh2에서 skerit에 대한 비밀번호 실패 

그런 다음 SAME 사용자 이름과 암호를 사용하여 ssh 서버에서 로컬로 ssh 서버에 로그인하려고 시도했지만 작동했습니다. 이것은 auth.log 파일에있었습니다 :

Jul 8 12:21:50 vpsnl1 sshd [27298] : debug1 : 키 파일 '/ etc / ssh / ssh_host_ecdsa_key'를 열 수 없습니다 : 해당 파일 또는 디렉토리가 없습니다
Jul 8 12:21:50 vpsnl1 sshd [27298] : 오류 : 호스트 키를로드 할 수 없습니다 : / etc / ssh / ssh_host_ecdsa_key
Jul 8 12:22:16 vpsnl1 sshd [27298] : pam_unix (sshd : auth) : 인증 실패; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = 82.197.70.70 사용자 =
스커 릿
Jul 8 12:23:50 vpsnl1 sshd [27439] : 0.0.0.0 포트 22에서 서버 수신 대기
Jul 8 12:23:50 vpsnl1 sshd [27439] : 서버 수신 대기 :: 포트 22.
Jul 8 12:24:07 vpsnl1 sshd [27458] : 오류 : 호스트 키를로드 할 수 없습니다 : / etc / ssh / ssh_host_ecdsa_key
Jul 8 12:24:14 vpsnl1 sshd [27458] : 127.0.0.1 포트 57667 ssh2에서 승인 된 비밀번호
Jul 8 12:24:14 vpsnl1 sshd [27458] : pam_unix (sshd : session) : 사용자 skerit에 대한 세션이 (uid = 0)
7 월 8 일 12:24:25 vpsnl1 sshd [27471] : 127.0.0.1에서 연결이 끊겼습니다 : 11 : 사용자가 연결을 끊었습니다
Jul 8 12:24:25 vpsnl1 sshd [27458] : pam_unix (sshd : session) : 사용자 skerit에 대한 세션 종료 

ssh-config를 추가 할 수 있습니까?
Bart De Vos

좋아, 설정 파일이 추가되었습니다!
skerit

.ssh에 대한 퍼미션은 어떻습니까? 서버에 ls -la ~ / .ssh를 게시 할 수 있습니까?
mkudlacek

좋아, 내가 로그인하려고하는 사용자의 파일 목록을 추가했습니다.
skerit

1
Authorized_keys는 전 세계에서 읽을 수 없어서는 안되지만 암호로 로그인 할 수없는 이유는 설명하지 않습니다. 당신은 su skerit당신의 계정에서 할 수 있습니까 ?
mkudlacek

답변:


9

액세스하려는 사용자 계정이 올바르게 구성되어 있습니까? 시스템에 루트로 로그인 su하면 사용자 계정에 로그인 할 수 있습니까?

# su - username

연결 시도가 실패한 후 로그에 무엇을 보입니까? 많은 시스템에서 sshd는 /var/log/secure또는에 로그인합니다 /var/log/auth.log. 또한 귀하는 PasswordAuthentication활성화했지만 ChallengeResponseAuthentication비활성화했습니다. 활성화하면 동일한 동작이 나타 ChallengeResponseAuthentication납니까?

ssh 문제가있을 때 사용하는 일반적인 진단 단계는 다음과 같습니다.

  • ssh에서 자세한 진단을 사용하십시오.

    ssh -v host.example.com
    

    이로 인해 클라이언트는 연결을 협상 할 때 다양한 진단 메시지를 출력합니다. 이것은 종종 문제의 단서를 제공 할 것입니다.

  • 디버그 모드에서 서버를 실행하십시오.

    서버에서 sshd를 중지 한 후 다음과 같이 명령 행에서 실행하십시오.

    /usr/sbin/sshd -d
    

    이것은 stderr유용한 정보를 포함 하는 상세 디버그 로깅을 생성 합니다.

이 중 어느 것도 문제를 파악하는 데 도움이되지 않으면 질문에 결과를 추가 하시겠습니까?


좋아, 나는 출력을 추가했다. 기본적으로 : 원격 로그인을 할 때 비밀번호가 좋지 않다는 메시지가 표시되고, 로컬 로그인을 시도 할 때 비밀번호가 확인
되었다는 메시지가 표시

2
그것은 WAS 암호. 웹 콘솔 (일부 Java 응용 프로그램)을 통해 비밀번호를 변경했으며 입력 한 비밀번호가 퍼티 콘솔에 입력 한 것과 동일하더라도 어떻게 든 ASCII 값이 달라야합니다. 나는 그것을 더 간단한 것으로 바꾸었고, 퍼티를 통해 올바른 방식으로 기록했다가 다시 바꿨다. 이제 작동합니다.
skerit

@ skerit-아마도 문자 인코딩 문제가 있었을 것입니다-아마도 UTF8 대 ASCII입니까?
warren

일이 잘되어서 다행입니다!
larsks

DigitalOcean의 웹 콘솔에서 비밀번호를 변경 한 후 @skerit과 동일한 문제가있었습니다.
Daniel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.