正如标题所说,我想禁止某个用户的ssh访问,但允许用户执行一个java进程并访问SFTP
如何做到这一点?
您可以创build一个名为sftponly的组。
将用户添加到该组并configurationssh
/etc/ssh/sshd_config
新增Conf:
Match Group sftponly ChrootDirectory %h AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp
现在这个组里的用户只能用sftp
这个设置有一个小问题,就是来自ssh的chroot需要%h(homevariables)由root拥有。 有了这个variables,你可以为多个用户做到这一点。
所以它会是这样的:
/home/user1 ( root owner ) /home/user1/public_html ( user1 owner )
不需要被public_html它可以是任何文件夹的名字…例如Java
那么,对于大多数情况来说,禁止ssh访问的简单方法是在其configuration文件中更改其shell环境variables。 在这里检查: 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 – 你需要给他们一个授权密钥(宁而不是密码),并按照“强制命令”部分中的说明进行操作,以便在login时始终运行完全相同的命令,忽略发送给它的任何内容。