SSH 공개 키는 루트에서는 작동하지만 사용자에서는 작동하지 않습니다.

SSH 공개 키는 루트에서는 작동하지만 사용자에서는 작동하지 않습니다.

중복 가능성:
공개 키 인증을 사용할 때 SSH 비밀번호 프롬프트가 계속 표시되는 이유는 무엇입니까?

원격 서버를 설정 중입니다. sshd공개 키만 사용하도록 구성합니다 . 원격 컴퓨터에 동일한 계정을 가진 두 개가 있으므로 .ssh/authorized_keys동일한 키를 사용하여 로그인할 수 있습니다. 둘 중 하나는 루트이며 시도하면 다음과 같습니다.

ssh -i /path/to/privatekey [email protected]

나는 들어갔다. 문제 없다. 그러나 다른(권한이 없는) 사용자와 함께 시도하면 다음과 같습니다.

ssh -i /path/to/privatekey [email protected]

실패합니다. -v노출된:

debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /path/to/privatekey
debug1: Authentications that can continue: publickey
debug1: Trying private key: /path/to/privatekey
**debug1: key_parse_private_pem: PEM_read_PrivateKey failed**
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/path/to/privatekey': 

root@server 로그인이 성공한 후에는 별표가 있는 줄이 나타나지 않습니다. 이것은 또한 ssh-agent키에 대한 비밀번호를 이미 가지고 있기 때문에 이상합니다. root@server로 로그인하라는 메시지가 표시되지 않습니다. bob@server 로그인이 실패하고 종료되었습니다:

debug1: read PEM private key done: type DSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

권한 등이 /home/bob/.ssh정확함[단, .ssh 디렉토리에는 실행 비트가 없습니다. 댓글 참조]. 이는 실제로 시스템 업그레이드/재설치이며 구성을 /etc포함한 이전 백업이 있습니다 . sshd나는 아무 것도 변경하지 않았습니다(비밀번호 인증을 허용하면 bob이 들어갈 수 있지만). 이것이 이전에 git을 통해 시스템을 사용했던 방법입니다. 따라서 git remotebob@server를 사용하여 ssh를 통해 입력된 프로젝트 ID가 여러 개 있습니다. , 그리고 그걸 바꾸고 싶지 않아, sshd예전처럼 기능할 수 없으니까...

답변1

다음 사항을 확인해주세요.

  1. 디렉토리의 권한은 .ssh700입니다. 디렉터리에 들어가려면 해당 디렉터리에 대한 실행 권한이 필요합니다.

  2. 파일 권한은 authorized_keys600이어야 합니다.

시스템 관리자로서 저는 이 문제에 직면했습니다.

관련 정보