OpenSSH 서버가 키 인증을 거부합니다


13

새 서버에서 공개 키 인증을 사용하려고했는데이 문제가 발생했습니다.

$ ssh -v -i .ssh/server 192.168.1.100
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data .ssh/config
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to 192.168.1.100 [192.168.1.100] port 22.
debug1: Connection established.
debug1: identity file .ssh/server type -1
debug1: identity file .ssh/server-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-1ubuntu3
debug1: match: OpenSSH_5.8p1 Debian-1ubuntu3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '192.168.1.100' is known and matches the RSA host key.
debug1: Found key in .ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: .ssh/server
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password

그런 다음 로그인하려면 비밀번호를 입력해야합니다.

그러나 이미 하나의 세션이 해당 서버에 연결되어 있다면 (비밀번호로 연결됨) 다음 연결은 키 인증을 사용하여 비밀번호 입력을 피합니다.

SSH 연결이 설정되어 있지 않으면 입력 비밀번호없이 연결할 수 없습니다.

이것은 정말 이상 /usr/sbin/sshd합니다. 새 서버와 다른 일반 서버 사이의 MD5를 확인 했습니다. 동일합니다. 그런 다음 방금 /etc/ssh/sshd_config다른 일반 서버에서 새 서버로 파일을 복사 하고 실행했습니다 service ssh restart. 문제가 여전히 존재합니다.

이 문제를 어떻게 해결해야합니까?

답변:


10

당신 있는지 확인 .ssh폴더와 클라이언트 컴퓨터에 그 안에 파일이 소유자 (만이 읽을 수있다 chmod -R 600 .ssh)와 소유자는 폴더와 파일 (사용에 적합한 지 chown명령 필요한 경우).

또한 authorized_keys서버 의 폴더와 파일 (아마도 /root/.ssh로그인하려는 사용자의 홈 폴더 또는 폴더)에서 권한과 소유자가 동일한 방식으로 설정되어 있는지 확인하십시오.


편집 : 더 많은 피드백 (그리고 약간의 추측)을 기반으로- /etc/ssh/sshd_config다음 매개 변수가 아래와 같이 설정되어 있는지 확인할 수 있습니다 . 그렇지 않은 경우 편집하십시오.

AuthorizedKeysFile /home/%u/.ssh/authorized_keys

이것은 원격으로 루트로 로그인하지 않는다고 가정합니다.


내 .ssh는 700이고 .ssh의 파일은 600이며 원격 컴퓨터에서 ~ / .ssh / authorized_keys를 두 번 확인했습니다. 설치 공개 키 인증은 시스템을 설치 한 후 가장 먼저해야하므로 다른 작업으로 엉망이되지 않습니다. btw, 문제는 여전히 ..
lxyu

확인-이것에 따라 답변에 무언가를 추가하고 있습니다.
링커 3000

"#AuthorizedKeysFile % h / .ssh / authorized_keys"줄이 있습니다. 나는 그것을 주석으로 시도했지만 아무 소용이 없다. btw, 같은 'sshd_config'를 가진 동일한 '/ usr / sbin / sshd'는 어떻게 다르게 동작합니까?
lxyu

마지막으로 우분투를 다시 설치 한 다음 1 분 안에 openssh-server를 설정하고 정상적으로 작동합니다 ... 아직 무엇이 잘못되었는지 모르겠습니다. :(
lxyu

때로는 문제가 무엇인지 찾기가 정말 어렵습니다. 한 번은 authorized_keys를 auhorized_keys로 잘못 입력했습니다. 이 문제를 해결하려면 약 1 시간이 필요했습니다. 철자가 잘못 보입니까? 정말 까다 롭습니다! :-)
nalply February

4

id_rsa.pub.ssh에서 제거 하여이 오류가 발생했습니다 .

id_rsa다른 컴퓨터에서 복사 하여 여러 더미 클라이언트에 배포했습니다. 따라서, id_rsaid_rsa.pub의 사용 방지 실제로 다른 키 있었다 id_rsa모두가.

이 오류를 명확하게 나타내는 오류 메시지가 없습니다. 본질적으로 우연히 다른 기계를 동일한 상태로 만들려고 생각했습니다.


3

내가 찾은 바에 따르면 대상의 홈 디렉터의 최소 권한은입니다 750. 세계 비트가 아닌 0경우 작동하지 않습니다.

예 : 루트 디렉토리의 경우 :

drwxr-x--- 3 root root 4096 Jul 20 11:57 root

다음은 /root/.ssh

drwx------  2 root root  4096 Jul 17 03:28 .ssh

그때 /root/.ssh/authorized_keys

-rw------- 1 root root 1179 Jul 17 03:28 authorized_keys

3

필자의 경우 홈 디렉토리의 권한이 775대신 0755되었거나 낮았습니다.

certified_keys 파일의 전체 경로, 즉 이보다 작아야 /home/user/.ssh/합니다 0755.


감사합니다. 방금 일주일 동안 겪었던 두통에 대해 읽었습니다. 대부분의 사람들은 .ssh 폴더 (700)와
certified_keys

2

많은 문제를 겪은 후 문제의 해결책을 얻었습니다.

사용자의 홈 디렉토리는 권한 777또는 월드 쓰기 가능 권한이 없어야합니다 . 이 경우 SSH 키 확인에 실패하고 로그인 비밀번호를 입력해야합니다.



1

/etc/ssh/sshd_config주석 처리되지 않은 다음 행이있는 경우 SSH 구성은 고정 된 사용자 목록 만 시스템에 ssh 할 수있게하며 목록에 새 계정을 추가해야합니다.

AllowUsers root user1 user2 user3

SSH를 통해 로그인을 시도하는 위에 나열된 사용자 이외의 다른 사용자에게는 다음과 같은 암호 오류 메시지가 표시됩니다.

Roaming not allowed by server

0

내 사용자 및 그룹 이름 (ID는 아님)을 변경 한 후 /etc/passwd 하고 /etc/group, 그러나 변화 잊어 /etc/shadow따라, 나는 메시지 "허용 로밍 없음"같은를 얻었다.

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