允许 SFTP 和进程运行但禁止单个用户使用 ssh

允许 SFTP 和进程运行但禁止单个用户使用 ssh

正如标题所说,我想禁止用户 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- 您需要向他们提供一个授权密钥(而不是密码),并按照“强制命令”部分中的说明进行操作,以便它在他们登录时始终运行完全相同的命令,而忽略他们发送给它的任何内容。

相关内容