이 사용자에 대한 SSH 키 인증이 실패하는 이유는 무엇입니까? (CENTOS 7)[닫기]

이 사용자에 대한 SSH 키 인증이 실패하는 이유는 무엇입니까? (CENTOS 7)[닫기]

새 사용자 계정이 명령을 통해 RSA 키 인증을 사용하여 Centos 7 서버에 SSH로 성공적으로 연결할 수 없다는 사실을 디버깅하려고 합니다.

ssh theuser@theserver

다음과 같은 관찰이 가능합니다:

  • 사용자 계정(theuser)이 존재하며 잠겨 있지 않습니다.
  • 사용자의 홈 폴더에는 Authorized_keys 파일(600 권한)이 포함된 .ssh 디렉터리(700 권한)가 포함되어 있습니다.
  • Authorized_keys 파일에는 로컬 컴퓨터의 공개 키 복사본이 포함되어 있습니다.
  • 로컬 시스템의 ~/.ssh/config 파일은 해당 서버의 올바른 키 파일을 가리킵니다.
  • 키 인증이 실패하면 사용자 비밀번호를 입력하여 ssh를 성공적으로 구현할 수 있습니다.
  • 다른 사용자 계정을 사용하여 공개 키를 통해 SSH를 구현할 수 있습니다.
  • 사용자가 키를 거부하면 /var/log/secure 파일에 아무 것도 기록되지 않습니다.

제 동료와 제가 막혔는데, 이 문제의 원인을 찾기 위해 취해야 할 다음 단계를 제안해 주실 수 있는 분 계십니까?

편집: ssh -vvv 출력 포함

debug1: Host 'theserver' is known and matches the ECDSA host key.
debug1: Found key in /Users/ambulare/.ssh/known_hosts:20
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug2: key: /Users/ambulare/.ssh/server_isr_id_rsa_ambulare (0x7fc#obfuscated#), explicit
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-keyex,gssapi-with-mic,password
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/ambulare/.ssh/server_isr_id_rsa_ambulare
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password

답변1

@DevilaN의 제안 덕분에 문제가 해결되었습니다.

ssh-copy-id를 시도하면 "authorized_keys에 대한 권한 거부" 오류가 반환됩니다. 이것은 권한 오류였기 때문에 이 파일에 사용자 소유권을 설정했지만(원래 질문에서와 같이) Authorized_keys 파일의 소유권과 권한을 다시 확인하는 작업으로 돌아갔습니다. 설정 이로 인해 소유권이 "루트"로 변경되었습니다.

단순한 소유권 문제입니다.

chown theuser:theuser authorized_keys

짜잔, SSH가 작동 중입니다.

Google 검색을 통해 이 답변을 찾은 사람의 경우: 잘못된 사용자가 인증 키 파일을 소유하면 ssh-copy-id를 수행할 때까지 어디서나 권한 오류를 반환하거나 기록하지 않고 ssh 로그인 시도가 자동으로 실패하게 되는 것 같습니다. .

관련 정보