Ubuntu 22.04.1이 설치되어 있고 pubkey + 개인 키 인증을 사용하여 SSH에 로그인하고 있습니다.
그래서 제가 취한 단계는 다음과 같습니다
- 먼저 Mac에서 키 쌍을 만들었습니다.
- 그런 다음 서버로 이동하여
/etc/ssh/sshd_config
SSH 로그인을 위한 새 포트를 추가하도록 편집했습니다. - 방화벽(UFW)에서 해당 포트를 열고 기본 22를 닫았습니다.
ssh-copy-id -i /path/to/public/key root@host
공개 키를 서버에 복사 했습니다 .- 그런 다음
/etc/ssh/sshd_config
다시 비밀번호 인증을 허용하지 않습니다. - sshd를 다시 시작하고 루트와의 연결을 테스트했습니다. 연결이 잘 되더군요.
- 비밀번호 인증을 다시 활성화하고 새 포트에서 사용자 + 비밀번호를 사용하여 루트가 아닌 sudo 사용자 중 한 명과 함께 ssh를 테스트했습니다. 연결이 잘 되더군요.
ssh-copy-id -i /path/to/public/key user@host
해당 특정 사용자에 대한 .ssh/authorised_keys의 공개 키를 서버에 복사 했습니다 . 프로시저는 오류를 반환하지 않았으며 키 하나가 복사되었다고 보고했습니다. 서버에 로그인하여 Authorised_keys 파일을 다시 확인했는데 키가 실제로 거기에 있었습니다.- 그런 다음
/etc/ssh/sshd_config
다시 비밀번호 인증을 허용하지 않습니다. - sshd를 다시 시작하고 사용자와의 연결을 테스트했습니다.여기에서 문제가 발생했습니다.사용자가 로그인할 수 없습니다. 시도하면 오류가 발생합니다:
Permission denied (publickey)
. 비밀번호 인증을 다시 활성화하면 정상적으로 연결할 수 있지만 여전히 키가 없습니다. 표준 사용자 이름+비밀번호 연결입니다.
루트 사용자에 대해 정확히 동일한 조합을 사용하므로 키 쌍이 테스트됩니다. Permitrootlogin을 비활성화하고 싶지만 비활성화할 수 없습니다. 어떤 아이디어가 있나요?
편집: @Jos의 조언에 따라 사용자를 사용하여 루트 광고를 사용하여 자세한 로그인을 수행했습니다. 결과는 다음과 같습니다. 민감한 정보와 키, IP 등을 모두 필터링하고 결과를 스크린샷으로 변환했습니다.
그리고 (연결에 실패한) 사용자:
편집: @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