"SFTP만 되는 계정 생성"의 두 판 사이의 차이

69번째 줄: 69번째 줄:
* [[쉘 권한 없는 계정 생성]]
* [[쉘 권한 없는 계정 생성]]
* [[리눅스 SFTP 서버 사용]]
* [[리눅스 SFTP 서버 사용]]
* [[sftp-server과 internal-sftp]]
* [[sftp-server과 internal-sftp 차이]]


==참고==
==참고==

2020년 4월 5일 (일) 18:53 판

SFTP만 되는 계정 생성
Shell 로그인 권한은 없고 SFTP만 접속할 수 있는 계정 설정하기
nologin 계정에 SFTP를 허용하는 방법

1 계정 생성

명령어
Bash
Copy
useradd -s /sbin/nologin 계정명
실행예시
Console
Copy
[root@zetawiki ~]# useradd -s /sbin/nologin sftpuser
[root@zetawiki ~]#

2 패스워드 지정 & 확인

명령어
Bash
Copy
echo '패스워드' | passwd --stdin 계정명
ssh 계정명@localhost
실행예시
Console
Copy
[root@zetawiki ~]# echo 'P@ssw0rd' | passwd --stdin sftpuser
Changing password for user sftpuser.
passwd: all authentication tokens updated successfully.
[root@zetawiki ~]# ssh sftpuser@localhost
sftpuser@localhost's password:
→ 패스워드 입력
Console
Copy
This account is currently not available.
Connection to localhost closed.
→ 패스워드는 맞지만 쉘권한이 없어서 세션이 닫힘.

3 (optinal) chroot 적용

특정 경로를 루트 디렉토리로 정하고 그 디렉토리 밖으로 못 나가게 하는 chroot 설정이 가능하다.[1]

Console
Copy
[root@zetawiki ~]# vi /etc/ssh/sshd_config
aconf
Copy
#Subsystem	sftp	/usr/libexec/openssh/sftp-server
Subsystem	sftp	internal-sftp
Match Group sftpuser
        ChrootDirectory /home/
        ForceCommand internal-sftp -d %u

위와 같이 설정하면 'sftpuser' 그룹에 속한 유저가 접속할 경우, /home/사용자명 경로가 / 가 된다.

4 sftp만 되는 계정의 password 변경

sftp만 되는 사용자가 자신의 패스워드를 바꾸는 것은 불가능하다. root 사용자가 변경해주거나 별도 툴이 있어야 한다. /etc/passwd 에 접근이 불가능하기 때문이다.[2][3]

5 sshd 재시작

Console
Copy
[root@zetawiki ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

이제 sftpuser 계정으로 SFTP로 접속하면 된다...

6 같이 보기

7 참고

문서 댓글 (2)
Jmnote 2020-04-05
Luckyow 2020-04-05
왜 /etc/ssh/sshd_config 에 있는 Subsystem sftp /usr/libexec/openssh/sftp-server 이거를 Subsystem sftp internal-sftp 이렇게 바꾸나요