允许scp但不允许ssh-不作任何回应


8

我正在将Debian服务器迁移到Ubuntu 16.04。Debian服务器上的软件包之一是scponly充当外壳,并且仅允许出于scp目的ssh连接(不能登录或运行scp二进制文件以外的任何东西)。详细信息可以在这里找到。这个软件包已经在Debian上进行了至少两次物理服务器升级,无数次OS升级,并且可能在2007年左右发布。

scponly不在任何16.04存储库中,也不在启动板上编译。虽然我完全有能力从源代​​码安装它,但是这使我想知道在过去的10多年中是否存在更好的方法来将ssh配置为仅允许scp命令,那就是对Ubuntu 16.04的友好程度更高,而基于dim和遥远的过去。有任何想法吗?

Answers:


15

根据此serverfault.com答案允许SCP,但不能使用SSH实际登录,当前受支持的一种方式是使用rssh,可从universe存储库中获得:

sudo apt-add-repository universe

sudo apt-get install rssh

要允许SCP,您必须取消注释文件中的相应行/etc/rssh.conf(以及您希望启用的任何其他协议):

allowscp
#allowsftp
#allowcvs
#allowrdist
#allowrsync
#allowsvnserve

然后,只需将用户的登录shell更改为rssh shell,例如

sudo chsh -s /usr/bin/rssh steeldriver

然后您可以测试SCP是否有效,例如

$ scp steeldriver@localhost:~/Pictures/somefile.png ./
steeldriver@localhost's password: 
somefile.png                                                               100%   34KB  33.7KB/s   00:00    
$

但是SSH应该失败,并显示拒绝消息,例如

$ ssh steeldriver@localhost
steeldriver@localhost's password: 
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-88-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

Last login: Wed Jul  6 16:23:47 2016 from localhost

This account is restricted by rssh.
Allowed commands: scp

If you believe this is in error, please contact your system administrator.

Connection to localhost closed.

注意,似乎没有必要添加/usr/bin/rssh到/ etc / shells中的允许登录shell列表中


谢谢。前不久投票,今天检查它是否可以接受。
abligh
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.