CentOS 8에서 ssh 로그인은 허용하지 않는 sftp만 허용하는 계정 생성 방법을 알아보고, 실습을 통해 쉽게 적용하고 사용할 수 있습니다.
CentOS 8에서 ssh 로그인은 허용하지 않는 sftp만 허용하는 계정 생성 방법을 알아보고, 실습을 통해 쉽게 적용하고 사용할 수 있습니다.
리눅스 서버에서 SSH 접속은 허용하지 않고, SFTP를 통해 파일 업로드 및 다운로드만 가능한 계정이 필요할 경우 SFTP 전용 계정을 생성해서 사용할 수 있습니다.
sftp-only 그룹과 sftp-user 계정을 사용해서 SSH 접속은 허용되지 않으면서 SFTP를 통해 파일 업로드와 다운로드만 가능하도록 설정하는 작업입니다.
실습 환경
- 운영 체제(OS) : CentOS 8
- root 계정으로 실행
그룹 생성하기
SFTP 용도의 sftp-only 그룹을 생성합니다.
[groupadd -g 1100 sftp-only]
유저 생성하기
SFTP 용도의 sftp-user 계정을 생성하므로 SSH 접속을 제한하고, 홈 디렉터리를 생성하지 않습니다.
[useradd -M -s /sbin/nologin -u 1100 -g sftp-only sftp-user]
비밀번호 설정하기
sftp-user 계정의 비밀번호를 설정합니다.
[echo 'password' | passwd --stdin sftp-user]
- [message]
- ##info-circle## 계정 비밀번호를 관리자가 변경해 줘야 합니다!
- sftp-user 계정은 SSH 로그인이 불가능하므로, 비밀번호 변경 시 관리자가 변경해 줘야 합니다.
SFTP 홈 디렉터리 생성 및 CHROOT 설정하기
SFTP를 사용해서 업로드할 디렉터리를 생성하고, chroot 설정을 통해 홈 디렉터리를 제외한 경로의 접근을 제한합니다.
홈 디렉터리 생성 및 권한 설정하기
/sftp-only/sftp-user 가 홈 디렉터리이며, 업로드 경로로 uploads 디렉터리를 생성합니다.
[mkdir -p /sftp-only/sftp-user/uploads]
sftp-user 계정의 홈 디렉터리를 설정합니다.
[usermod -d /sftp-only/sftp-user/ sftp-user]
sftp-user 계정이 uploads 디렉터리를 사용할 수 있도록 권한 설정을 합니다.
[chown sftp-user.sftp-only /sftp-only/sftp-user/uploads]
CHROOT 설정하기
홈 디렉터리로 이 외의 경로의 접근을 제한하기 위해 sshd_config 파일의 내용을 수정합니다.
[vi /etc/ssh/sshd_config]
[# override default of no subsystems #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp -f LOCAL5 -l VERBOSE Match Group sftp-only ChrootDirectory /sftp-only/%u ForceCommand internal-sftp]
SSH 접속 테스트하기
SFTP 전용 계정이므로 SSH 접속을 제한했습니다. SSH 로그인이 되지 않는지 확인합니다.
[ssh sftp-user@localhost]
![]() |
sftp-only 계정 SSH 로그인 차단 확인 |
SFTP 접근 경로 테스트하기
파일질라를 사용해서 SFTP 접속 후 파일 업로드 및 접근 할 수 있는 경로를 확인합니다.
desktop.ini 파일을 테스트로 업로드했습니다.
파일 소유자/그룹이 sftp-user/sftp-only 로 설정된 것을 확인할 수 있습니다.
![]() |
파일질라 sftp 접속 경로 테스트 |
마무리
리눅스 서버에서 sftp 용도의 계정 생성과 설정 작업이 완료되었습니다.
ftp 서비스를 사용하지 않고, 파일 업로드 및 다운로드 용도의 계정 생성이 필요할 때 사용할 수 있습니다.
COMMENTS