연결이 끊어짐 : 지원되는 인증 방법이 없습니다.


12

이 스레드에 설명 된 것과 똑같은 문제가 있지만 사용자의 홈 디렉토리 로컬 이기 때문에 대답은 나에게 맞는 것이 아닙니다 .

클라이언트 측 (Windows 7, PuTTY의 PAGEANT, PUTTYGEN 및 PLINK)에서 모든 것을 올바르게 구성했다고 생각하지만 공개 키 메커니즘이 작동하지 않는 것 같습니다 (암호 기반 ssh 로그인 작동). 나는 모든 단계, 단서 및 힌트를 따랐다.

이제 서버 측 (Linux, sshd)에 무언가가 누락되었을 수 있으므로 현재 /etc/ssh/sshd_config내용을 게시하고 있습니다.

Protocol 2
SyslogFacility AUTHPRIV
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
Subsystem       sftp    /usr/libexec/openssh/sftp-server

내가 뭘 잘못하고 있는지 알아?

업데이트 : 디버그 모드에서 sshd 를 실행하기위한 팁을 찾았 으며 출력은 다음과 같습니다.

/home/winwin> /usr/sbin/sshd -d
debug1: sshd version OpenSSH_4.2p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-d'
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
debug1: Bind to port 22 on 0.0.0.0.
Bind to port 22 on 0.0.0.0 failed: Address already in use.
debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 4 out 4 newsock 4 pipe -1 sock 7
debug1: inetd sockets after dupping: 3, 3
Connection from 192.168.1.8 port 49828
debug1: Client protocol version 2.0; client software version PuTTY_Release_0.60
debug1: no match: PuTTY_Release_0.60
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.2
debug1: permanently_set_uid: 74/74
debug1: list_hostkey_types: ssh-rsa,ssh-dss
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: client->server aes256-ctr hmac-sha1 none
debug1: kex: server->client aes256-ctr hmac-sha1 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received
debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT
debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done

debug1: userauth-request for user winwin service ssh-connection method none
debug1: attempt 0 failures 0
debug1: PAM: initializing for "winwin"
debug1: PAM: setting PAM_RHOST to "win7client"
debug1: PAM: setting PAM_TTY to "ssh"
Failed none for winwin from 192.168.1.8 port 49828 ssh2
debug1: userauth-request for user winwin service ssh-connection method publickey
debug1: attempt 1 failures 1
debug1: test whether pkalg/pkblob are acceptable
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 513/513 (e=0/0)
debug1: trying public key file /home/winwin/.ssh/authorized_keys
Authentication refused: bad ownership or modes for directory /home/winwin
debug1: restore_uid: 0/0
Failed publickey for winwin from 192.168.1.8 port 49828 ssh2
Received disconnect from 192.168.1.8: 14: No supported authentication methods available
debug1: do_cleanup
debug1: PAM: cleanup
debug1: do_cleanup
debug1: PAM: cleanup

이제 두 bad ownership or modes for directory /home/winwin메시지를 보았지만 / home / winwin 디렉토리와 AFAICT의 소유권 또는 모드를 확인했습니다.

/home> ls -lad winwin
drwxrwxr-x  21 winwin winwin 4096 Jul 13 21:24 winwin

과:

/home/winwin> ls -lad .ssh
drwxr-xr-x  2 winwin winwin 4096 Jul 14 12:06 .ssh

과:

/home/winwin/.ssh> ls -lad *
-rw-r--r--  1 winwin winwin 210 Jul 14 12:06 authorized_keys
-rw-r--r--  1 winwin winwin 210 Jul 14 01:58 authorized_keys.pub
-rw-r--r--  1 winwin winwin 394 Jul 14 01:57 authorized_keys.pub.orig

무엇이 잘못 될 수 있습니까?

업데이트 II :chmod 600 아래 답변에서 제안한대로 시도 했습니다.

/home/winwin> ls -lad .ssh
drw-------  2 winwin winwin 4096 Jul 14 13:13 .ssh

과:

/home/winwin/.ssh> ls -lad *
-rw-------  1 winwin winwin 210 Jul 14 12:06 authorized_keys

그러나 여전히 작동하지 않습니다. 왜 여전히 Authentication refused: bad ownership or modes for directory /home/winwin오류가 발생합니까?

답변:


9

홈 디렉토리에서 그룹 쓰기 가능 권한을 사용해보십시오.

chmod g-w ~/

.ssh 폴더를 본인 읽기 / 쓰기 / 실행 가능하게 만드십시오 .

chmod 700 ~/.ssh

승인 된 키 파일 을 본인 만 읽을 수 있고 쓸 수있게 만드십시오 .

chmod 600 ~/.ssh/authorized_keys

권한 오류를 제거해야합니다.


나는 당신이 ~/.ssh와 같이 제안한대로했습니다 ~/.ssh/authorized_keys. 아직 운이 없다. 홈 디렉토리 자체에서 그룹 쓰기 가능 권한을 얻는 것에 관해서는이 사용자 / 그룹의 전체 목적을 약화시키기 때문에 그렇게 할 수 없습니다. 이 사용자의 홈 디렉토리는 그룹에서 쓸 수 있어야합니다 (동일한 이름과 gid를 가짐). 도와 주려고 +1
WinWin

감사합니다! chmod g-w ~/나는 사용자 중 하나를 대신 퍼티로 ssh를 수 없을 때 다른 사용자가 확인 ... 작업으로, 광기와 머리를 당기는 시간 후에 저를 저장
PavelS

Gah ya 고마워, 나는 다른 사용자와 함께 내 홈 디렉토리를 만들었고, 나는 chmod gw ~ /를 놓쳤다.
Clarence Liu

5

성공!

내가해야 할 일은 아니오 로 변경 StrictModes하는 것 입니다.

3.14 절 OpenSSH의 자주 묻는 질문과에서 http://blogs.nullvision.com/?p=114 .

와.


흠, 솔루션보다 해결 방법이 더 많습니다. 내 상자에서 뭔가를 확인하겠습니다.
Rob

ls -lad .sshdrwx를 보여 주므로 chmod 700 ~/.ssh내부 파일은 모두 -rw이므로 chmod 600 ~/.ssh/*-SHOULD-입니다.
Rob

신경 끄시 고, 본 이 사용자의 홈 디렉토리 (! 동일한 정확한 이름과 GID를 가진) 그룹에 의해 쓰기 가능해야합니다 아래

이 방법은 사용자가 없습니다!
Love

3

비슷한 문제가있었습니다. 주위를 파고 들었을 때 홈 디렉토리가 암호화되어 있음을 알았고 이것이 문제라고 생각했습니다. 인증 된 키 파일을 암호화 된 홈 디렉토리 외부의 디렉토리에 복사하고 권한을 적절히 변경했습니다 (chmod 700 [dir], chmod 600 [dir] / authorized_keys 등).

그런 다음 sshd_config를 편집하여 sshd에 인증 된 키 파일의 새 위치를 알리고 sshd를 다시 시작하면됩니다.

내 문제를 해결 한 것 같습니다.


2

홈 디렉토리 (또는 .ssh / authorized_keys 폴더)에 대한 권한이 올바르지 않은 것 같습니다. 이를 수정하면 로그인 문제를 해결해야합니다. 시도 chmod 600 /home/winwin/.ssh/*
해야 할 수도 chmod 700 /home/winwin/.ssh있습니다.

authorized_keys보안 상 위험하므로 SSHd는 사용자가 아닌 다른 사람 (소유자)이 파일을 쓸 수있는 경우 파일 로드를 거부합니다 .


고마워 +1 올바른 권한 / 소유권이 무엇인지 여전히 파악할 수 없으므로 위의 업데이트를 참조하십시오.
WinWin

방금 시도했습니다 chmod 600 /home/winwin/.ssh/*. 도움이되지 않았습니다. :-/
WinWin

1
@WinWin은 .ssh디렉토리에서도 설정 했습니까? (내 답변을 업데이트했습니다).
다스 안드로이드

그래, 내가 했어. 아직 운이 없다.
WinWin

2

나는이 문제를 해결하고 마침내 StrictModes No 와 같은 잠재적 보안 위반을 유발하지 않는 솔루션을 발견했습니다 .

설정이 다음과 같은지 확인하십시오.

chmod 0755 / home / {userdir}

chmod 0700 / home / {userdir} /.ssh

chmod 0600 / home / {userdir} /.ssh/authorized_keys

여기서 {userdir}은 해당 디렉토리입니다.

키는 chmod 0755이며, 사용자 만 홈 드라이브에 쓸 수 있습니다. 나는 작동하는 사용자 구성에서 이것을 복사하고 presto! 다른 사용자 이름도 작동하기 시작했습니다!

이것이 나처럼 다른 사람들을 돕고 몇 시간을 절약하기를 바랍니다.


1

이 오류 메시지는 sshd가 액세스하지 못하게하는 SELinux로 인해 발생할 수도 있습니다 authorized_keys. 이 시도:

restorecon -FRvv ~/.ssh

( 이 답변에서 )


0
chown -R winwin.winwin /home/winwin/
chmod 700 /home/winwin/
find /home/winwin/ -type d -exec chmod 700 {} \;
find /home/winwin/ -type f -exec chmod 600 {} \;

3
슈퍼 유저에 오신 것을 환영합니다! 이 명령의 기능을 설명 할 수 있다면 좋을 것입니다.
slhck

0

내 경우에는 이 홈 디렉토리가 속한 실제 사용자가 아닌 다른 소유자 (루트)가있는 홈 디렉토리였습니다 (다른 사용자의 루트로 홈 디렉토리를 만들 때 내 어리 석음).

Chown [user]:[group] /home/[user] 

이 문제를 해결했습니다 (물론 다른 답변에서 공유되는 파일 / 디렉토리 권한을 고수합니다).

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