SSH는 루트 이외의 사용자에 대한 공개 키 로그인을 허용하지 않습니다.

SSH는 루트 이외의 사용자에 대한 공개 키 로그인을 허용하지 않습니다.

Ubuntu 22.04.1이 설치되어 있고 pubkey + 개인 키 인증을 사용하여 SSH에 로그인하고 있습니다.

그래서 제가 취한 단계는 다음과 같습니다

  1. 먼저 Mac에서 키 쌍을 만들었습니다.
  2. 그런 다음 서버로 이동하여 /etc/ssh/sshd_configSSH 로그인을 위한 새 포트를 추가하도록 편집했습니다.
  3. 방화벽(UFW)에서 해당 포트를 열고 기본 22를 닫았습니다.
  4. ssh-copy-id -i /path/to/public/key root@host공개 키를 서버에 복사 했습니다 .
  5. 그런 다음 /etc/ssh/sshd_config다시 비밀번호 인증을 허용하지 않습니다.
  6. sshd를 다시 시작하고 루트와의 연결을 테스트했습니다. 연결이 잘 되더군요.
  7. 비밀번호 인증을 다시 활성화하고 새 포트에서 사용자 + 비밀번호를 사용하여 루트가 아닌 sudo 사용자 중 한 명과 함께 ssh를 테스트했습니다. 연결이 잘 되더군요.
  8. ssh-copy-id -i /path/to/public/key user@host해당 특정 사용자에 대한 .ssh/authorised_keys의 공개 키를 서버에 복사 했습니다 . 프로시저는 오류를 반환하지 않았으며 키 하나가 복사되었다고 보고했습니다. 서버에 로그인하여 Authorised_keys 파일을 다시 확인했는데 키가 실제로 거기에 있었습니다.
  9. 그런 다음 /etc/ssh/sshd_config다시 비밀번호 인증을 허용하지 않습니다.
  10. sshd를 다시 시작하고 사용자와의 연결을 테스트했습니다.여기에서 문제가 발생했습니다.사용자가 로그인할 수 없습니다. 시도하면 오류가 발생합니다: Permission denied (publickey). 비밀번호 인증을 다시 활성화하면 정상적으로 연결할 수 있지만 여전히 키가 없습니다. 표준 사용자 이름+비밀번호 연결입니다.

루트 사용자에 대해 정확히 동일한 조합을 사용하므로 키 쌍이 테스트됩니다. Permitrootlogin을 비활성화하고 싶지만 비활성화할 수 없습니다. 어떤 아이디어가 있나요?

편집: @Jos의 조언에 따라 사용자를 사용하여 루트 광고를 사용하여 자세한 로그인을 수행했습니다. 결과는 다음과 같습니다. 민감한 정보와 키, IP 등을 모두 필터링하고 결과를 스크린샷으로 변환했습니다.

Verbose를 사용한 루트 디버깅 연결

그리고 (연결에 실패한) 사용자:

verbose를 사용한 사용자 디버깅 연결

편집: @steeldriver는authorized_keys 파일이 지나치게 허용되는지 확인하기 위해 namei를 수행할 것을 제안했습니다. 출력은 다음과 같습니다.

| => namei -l ~/.ssh/authorized_keys
f: /home/spitixorismesiti/.ssh/authorized_keys
drwxr-xr-x root             root             /
drwxr-xr-x root             root             home
drwxrwx--- spitixorismesiti spitixorismesiti spitixorismesiti
drwx------ spitixorismesiti spitixorismesiti .ssh
-rw------- spitixorismesiti spitixorismesiti authorized_keys

관련 정보