集中化的方式来防止交互式login

我有一个Ubuntu服务器,用于我的学生的两个主要目的:

  1. 要保留学生需要临时上传的文件(即:我给他们一个input图像,他们上传他们的作业.m文件和输出图像,这只是我的原始图像,他们已经通过他们的码)。
  2. 作为学生需要访问页面的代理块(无论什么愚蠢的原因)。 我为使用Ubuntu和Windows(通过puTTY)创buildSSH隧道的学生提供了说明,以及如何在Firefox中使用FoxyProxy来使用代理。

所有学生都需要生成一个公钥/私钥对,他们给我的公钥,我把它添加到我的Ubuntu服务器上的authorized_keys文件为他们的帐户。 他们需要有一个强密码encryption的私钥,而不是与其他学生分享。

我目前在authorized_keys中有一个以no-pty为前缀的单个条目,所以学生可以以代理身份login到服务器,并使用SFTP将file upload到服务器。 这正是我需要的设置。

但是,今后,我可以在服务器上启用telnet和FTP来限制帐户数量。 如果我想阻止任何服务具有交互式shell,那么我可以在/etc/shells添加/sbin/nologin/dev/null ,并将单个用户的默认shell设置为/etc/passwd ,但是这会打破代理和SFTP设置,但显然允许FTP工作,而不允许交互式login。

有没有办法在一个地方设置“没有交互式shell”,或者我应该放弃设置telnet和FTP,并坚持到我的SFTP设置? 我所考虑的FTP和telnet的唯一原因是,据我所知,这比SFTP安全性要差一些,就是有些学生在使用防火墙来阻止SSH连接。

谢谢。