SSH-RSA 키를 사용하여 로그인할 수 없습니다

SSH-RSA 키를 사용하여 로그인할 수 없습니다

이 기사에서는 이 질문에 대한 답변을 제공합니다.인증 거부됨: /var/git/.ssh/authorized_keys 파일에 대한 소유권 또는 모드가 잘못되었습니다..

거기에 노출된 문제가 해결되었습니다( .ssh폴더의 파일 모드 관련).

하지만 또 다른 문제가 여전히 존재하므로 새로운 질문을 만들었습니다.

(verbose 옵션을 사용하여) 로그인을 시도하면 모든 것이 잘 작동하는 것처럼 보이지만 마지막에는 다음과 같은 상황이 발생합니다.

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/remi/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/remi/.ssh/id_dsa
debug1: Trying private key: /home/remi/.ssh/id_ecdsa
debug1: Trying private key: /home/remi/.ssh/id_ed25519
debug2: we did not send a packet, disable method
debug1: Next authentication method: password

이 줄이 나에게는 무의미해 보이기 때문에 이해가 되지 않습니다.

  • we sent a publickey packet, wait for reply
  • we did not send a packet, disable method

답변1

사용자의 파일 모드가 다음과 같은 경우 이 동작이 발생합니다.대상 호스트의 디렉토리 설정이 올바르지 않습니다. 올바르게 설정해야 하는 것은 .ssh 디렉토리의 모드뿐만이 아닙니다!

SSH를 통해 호스트에 접속하고 비밀번호를 입력하여 로그인한 다음

chmod 755 ~
logout

그런 다음 다시 ssh를 실행하고 다른 모든 항목을 올바르게 설정했다고 가정하면(다른 답변 참조) 로그인할 수 있습니다.

홈 디렉토리가 완전히 열렸을 때의 모습입니다(777). rsa 키는 시도하지 않습니다.

ssh -v user@host
...
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/iwoolf/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/iwoolf/.ssh/id_dsa
debug1: Trying private key: /home/iwoolf/.ssh/id_ecdsa
debug1: Trying private key: /home/iwoolf/.ssh/id_ed25519
debug1: Next authentication method: password
...

그런 다음 홈 디렉터리 권한을 올바르게 설정합니다(755).

ssh -v user@host
...
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/iwoolf/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).

답변2

비슷한 문제가 있었는데 StrictModes를 yes에서 no로 변경할 때 해결되었습니다. 열어서 /etc/ssh/sshd_config추가하세요

StrictModes no

답변3

Ubuntu 22.04(기본 사용자 "ubuntu"에 대해 ED25519 키 대신 RSA 키를 사용하여 AWS EC2에서 실행)에서 동일한 오류가 발생합니다. Permission denied (publickey).

그 이유는 RSA-SHA1 알고리즘이 빠르게 더 이상 사용되지 않기 때문입니다.

그래서 이걸 넣었어요/var/log/auth.log: userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]

이 문제에 대한 해결책은 위의 동일한 링크에 언급되어 있습니다.

HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

/etc/ssh/sshd_config파일 에서systemctl restart ssh.service

RSA-SHA1 키가 있는 서버에 대한 SSH 클라이언트로 Ubuntu 22.04를 사용하는 경우 파일에서 동일한 2줄을 사용해야 합니다 ~/.ssh/config. 여러 버전에 걸쳐 동일한 키 세트를 사용해야 하는 경우 SSH의 용도에 따라 양쪽 어디에서나 이 두 줄을 활성화할 수 있습니다. 이는 해결 방법이며 기술적으로 안전하지 않으므로 영구적인 해결책이 아닌 일시적인 임시방편으로 간주되어야 합니다. 시간이 지남에 따라 시스템 업데이트/업그레이드를 시작하고 ED25519 키와 같은 더 강력한 키로 이동해야 한다고 생각합니다.

답변4

서버가 RSA 키를 허용하도록 구성되어 있습니까?

파일 RSAAuthentication yes에 있는지 확인하세요 .sshd_config

관련 정보