답변:
버전 4.9부터 OpenSSH (centos 5.x에서 사용할 수 없지만 ChrootDirectory 기능이 백 포트 됨)에는 internal-sftp
서브 시스템이 있습니다.
Subsystem sftp internal-sftp
그런 다음 다른 용도를 차단하십시오.
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
사용자를 sftponly
그룹에 추가하십시오 . /
chroot 로 인해 사용자의 홈 디렉토리를 변경 /home/user
해야하며의 소유 여야합니다 root
. 또한 /bin/false
사용자의 쉘로 설정 했습니다.
쉘이 scponly에 이 작업을 수행 무슨 일이. 그것은 수 chroot를 너무.
sftp를 허용하지만 ssh를 거부하는 가짜 셸인 Checkout rssh
RSSH에 대한 추가 정보
http://www.pizzashack.org/rssh/
RPM
http://pkgs.repoforge.org/rssh/
sft, scp 등과 같은 다른 동작을 허용 / 거부하도록 rssh를 구성 할 수 있습니다.
/ etc / passwd를 수정하고 ssh를 사용할 수 없도록 사용자에게 가짜 셸을 제공 할 수 있습니다.
/bin/false
ssh 나 sftp 둘 다로 설정 하지 않을 때
일부 선택된 사용자 만 SFTP를 사용하도록 ssh를 구성하는 것은 좋은 생각이며 제대로하면 당신이 중 하나를 설치하는 것이 제공하는 작품 scponly
이나 rssh
.
rssh
감옥을 구성 할 필요가없는 한 잘 작동합니다.이 경우 CHROOT 설명서에서 제공하는 지시 사항을 따르십시오 rssh
. 쉘 자체를 포함하여 시스템 실행 파일의 많은 부분과 라이브러리를 "각 사용자 감옥"바로 아래에 "복사" 합니다. 공간 낭비 방법입니다.
scponly
감옥 설정의 경우 로그인 거부 문제가 발생하는 구성에 대한 깊은 이해가 필요합니다.
감옥에서 올바르게 작동하는 "ftp"기능을 허용하고 보안 트랜잭션 및 로그인에 대한 SSL / TLS 지원을 제공하는 간단한 방법은 빠르고 깔끔하게 설치하고 필요에 따라 모든 구성 기능을 제공하는 "오래된 작동"VSFTPD를 사용하는 것입니다. 그러나 적어도 : 그것은 작동합니다!
모리 치오.
불행히도 모든 답변이 잘못 오도되었습니다. 다음을 수행하십시오.
먼저 sftp 사용자 및 그룹 sftp를 작성하십시오.
SFTP 파일의 루트로 별도의 디렉토리를 작성하십시오. sudo mkdir -p /home/sftpdir
#$OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. Port 38250 Port 22 PasswordAuthentication no ChallengeResponseAuthentication no # Set this to 'yes' to enable PAM authentication, account processing, # and session processing. If this is enabled, PAM authentication will # be allowed through the ChallengeResponseAuthentication and # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication via ChallengeResponseAuthentication may bypass # the setting of "PermitRootLogin without-password". # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication # and ChallengeResponseAuthentication to 'no'. UsePAM yes X11Forwarding yes PrintMotd no # Allow client to pass locale environment variables AcceptEnv LANG LC_* #DenyUsers sftpuser # override default of no subsystems Subsystem sftp internal-sftp Match group sftp Match User sftpuser Match LocalPort 38250 ForceCommand internal-sftp ChrootDirectory /home/sftpdir PermitTunnel no AllowAgentForwarding no X11Forwarding no AllowTcpForwarding no
sshd 서비스의 재시작 및 상태 확인
sudo 서비스 sshd 다시 시작
서비스 sshd 상태
쉘 파일을 작성하십시오. 알림 메시지를 반영하는 실행 추가
sudo touch / bin / sftponly echo -e '#! / bin / sh \ necho "이 계정은 SFTP 액세스로만 제한됩니다."'| sudo 티 -a / bin / sftponly
실행 권한 부여 및 쉘 파일에 추가
sudo chmod a + x / bin / sftponly echo "/ bin / sftponly"| sudo 티 -a / etc / shells
마지막으로 테스트하면 연결할 수 없습니다.
SSH 키 및 기본 상세 정보와 함께 SFTP 클라이언트를 사용하기위한 템플리트 :
sftp -v -oPort = $ RANDOM_PORT -i ~ / .ssh / $ SSH_KEY.pem sftpuser @ $ HOST