중복 가능성:
oracle과 같은 일반 사용자의 직접 로그인을 비활성화하지만 Linux에서는 scp 및 sftp를 허용하시겠습니까?
UNIX 계정이 SSH를 통해 연결되는 것을 방지하고 싶지만 SCP/SFTP에서는 계속 사용할 수 있어야 합니다.
그게 가능합니까?
그 이유는 Unix 서버가 응용 프로그램에 공통 계정을 사용하고 사람들이 개인 계정 대신 해당 공통 계정을 사용하여 서버에 로그인하기 때문입니다. 감사상의 이유로 개인 계정을 사용하여 SSH를 통해 상자에 연결하기를 원합니다.
답변1
그것은 매우 가능하며, 이를 수행하는 방법은 다양합니다. 패치워크 솔루션도 있고 우아한 솔루션도 있습니다. 그것은 모두 당신이 하고 싶은 일의 세부 사항과 얼마나 많은 시간을 투자하고 싶은지에 달려 있습니다.
scp/sftp로 제한하려는 원격 전용 사용자가 있는 경우 다음을 살펴보는 것이 좋습니다.스폴리그리고작동 방법에 대한 지침 세트(데비안 가정).
당신은 또한 시도할 수 있습니다RSSH, 이는 동일한 작업을 수행하는 또 다른 쉘 대체품입니다.
또한 이러한 제한된 사용자에 대한 그룹을 생성하고 (물론) 해당 그룹에 사용자를 추가해야 합니다. 그런 다음 파일에 다음과 같은 내용을 추가합니다 sshd_config
(일반적 /etc/ssh
으로 또는 에 있음 /etc
).
Match Group sftp-only
ForceCommand internal-sftp
#ChrootDirectory /somewhere/%u # Optional chroot jail
#AllowTcpForwarding no # Disable TCP forwarding
#X11Forwarding no # Disable X11 forwarding
#Umask 700 # Set the umask
이렇게 하면 해당 사용자에 대한 TCP 전달과 같은 작업이 비활성화/강제됩니다. 당연히 #
필요한 것을 삭제해야 합니다 . sshd_config(5)
자세한 내용은 맨페이지를 참조하세요.
이 중 가장 간단한 방법은 사용자의 쉘을 false
또는 nologin
(각각 Debian에서 /bin/nologin
) 로 변경하는 것입니다 /usr/sbin/nologin
. 약간 더 복잡한 연결 부분은 사용자 또는 그룹을 체크인한 /etc/profile
다음 "로그인이 허용되지 않음" 메시지와 함께 로그아웃하는 것입니다. 베팅을 헤지하고 싶다면(그렇습니다) 이렇게 할 수 있습니다게다가. 기억하세요. 그것만으로는 충분하지 않습니다.
답변2
네, 가능합니다. 하지만 쉽지는 않습니다. 사용자의 기본 셸로 사용되는 경우 sftp, scp, rsync, cvs 및 rdist만 허용하는 rssh라는 프로그램이 있습니다. 물론 구성 파일을 편집하여 추가로 제한할 수도 있습니다.
답변3
no-pty
이 사용자를 사용해 보셨나요 $HOME/.ssh/authorized_keys
?
man sshd(8), AUTHORIZED_KEYS FILE FORMAT:
no-pty Prevents tty allocation (a request to allocate a pty will fail).