正如标题所说,我想禁止用户 ssh 访问,但允许用户执行 java 进程并访问 SFTP
如何才能做到这一点?
答案1
您可以创建一个名为 sftponly 的组。
将用户添加到该组并配置ssh
/etc/ssh/sshd_config
添加的会议:
Match Group sftponly
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
现在该组中的用户只能使用 sftp
此设置有一个小问题,即从 ssh chroot 时需要 root 拥有 %h(home 变量)。使用此变量,您可以为多个用户执行此操作。
所以它会是这样的:
/home/user1 ( root owner )
/home/user1/public_html ( user1 owner )
不一定是 public_html,可以是任何文件夹名称...例如 Java
答案2
好吧,对于大多数情况来说,禁止 ssh 访问的简单方法是更改其配置文件中的 shell 环境变量。请点击此处: http://www.cyberciti.biz/faq/how-to-disable-shell-ftp-access-to-newuser/
如果你希望他们能够访问高度具体的命令,请检查http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html- 您需要向他们提供一个授权密钥(而不是密码),并按照“强制命令”部分中的说明进行操作,以便它在他们登录时始终运行完全相同的命令,而忽略他们发送给它的任何内容。