允许scp而不是ssh - 没有scponly

Modified on: Sat, 09 Jun 2018 03:51:53 +0800

我正在将Debian服务器迁移到Ubuntu 16.04。 Debian服务器上的一个软件包是scponly,它充当shell并允许ssh连接仅用于scp目的(不能登录或运行除scp二进制文件之外的任何东西)。有关详细信息,请访问此处。这个软件包已经在Debian上通过至少2次物理服务器升级,无数的操作系统升级,可能大约从2007年开始。

scponly不在任何16.04存储库中,也不在启动板上编译。虽然我很有能力从源代​​码安装它,但这让我想知道在过去的10多年中是否有更好的方法来配置ssh以仅允许scp命令,这是更友好的Ubuntu 16.04,并且在昏暗和遥远的过去。有什么想法吗?

作者:,abligh

最佳答案

根据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,例如

allowscp
#allowsftp
#allowcvs
#allowrdist
#allowrsync
#allowsvnserve

然后,您可以测试SCP的工作情况,例如

sudo chsh -s /usr/bin/rssh steeldriver

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

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

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


相关问答

添加新评论