본문 바로가기

리눅스

SSH root 계정 접속을 제한하는 방법

반응형

SSH(sshd_config) root 계정 접속을 제한하는 방법

SSH를 통한 root 계정 접속을 제한하고 보안 설정을 강화하기 위해 sshd_config 파일을 수정해야 합니다.

 

주의: SSH 설정을 수정하기 전에 반드시 백업을 생성하거나 신중하게 작업하시기 바랍니다. 잘못된 설정으로 인해 SSH 서버 접속에 문제가 발생할 수 있습니다.

 

1. sshd_config 파일 열기

텍스트 편집기를 사용하여 sshd_config 파일을 엽니다.

sudo vim /etc/ssh/sshd_config

 

2. root 로그인 제한

sshd_config 파일에서 PermitRootLogin 항목을 찾습니다.

기본적으로 값은 yes로 설정되어 있습니다.

root 계정으로 직접 SSH 접속을 허용하지 않으려면 값을 no로 변경합니다.

PermitRootLogin no
PermitRootLogin yes : root 접속 허용
PermitRootLogin no : root 접속 제한

 

3. 비밀번호 인증 사용 비활성화

root 로그인을 막았다면, 비밀번호 인증도 비활성화하여 키 기반 인증만 허용하는 것이 좋습니다.

PasswordAuthentication 항목을 찾아 값을 no로 변경합니다.

PasswordAuthentication no

 

4. 공개 키 인증 활성화

공개 키 인증을 사용하려면 PubkeyAuthentication 항목이 yes로 설정되어 있는지 확인합니다.

PubkeyAuthentication yes

 

5. 다른 보안 설정

다른 보안 설정도 강화할 수 있습니다. 예를 들어, 암호화 알고리즘 설정, 세션 타임아웃, 포트 변경 등의 작업을 수행할 수 있습니다. 하지만 이러한 설정을 변경하기 전에 관련 문서나 보안 전문가의 권장 사항을 확인하는 것이 좋습니다.

 

6. 설정 저장 및 SSH 서비스 재시작

설정을 완료했다면 Shift + zz를 눌러 저장한 후, 편집기를 종료합니다. 변경 사항이 적용되려면 SSH 서비스를 재시작합니다.

 

이제 SSH를 통한 root 계정으로의 직접 접속이 차단되고, 공개 키 인증만을 통해 접속할 수 있게 되었습니다. 더 높은 보안 수준을 갖추기 위해 해당 서버에 대한 암호 복잡성 정책, 방화벽 설정 등을 추가로 검토하는 것이 좋습니다.

 

sed 명령어로 sshd_config 파일 편집

  • sed 명령어로 PermitRootLogin 치환 
sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
  • perl 명령어로 PermitRootLogin 치환 
perl -pi -e 's/^#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
  • sshd 서비스 재기동
sudo systemctl restart sshd

 

728x90
반응형