您需要SCP的外壳吗?


Answers:


39

您可以将该用户的shell设置为rsshscponly,这是专门为此目的而设计的:

rssh是与OpenSSH一起使用的受限外壳,仅允许使用scp和/或sftp。现在,它还支持rdist,rsync和cvs。

scponly是系统管理员的另一种“外壳”(某种形式),他们希望提供对远程用户的访问权,以读取和写入本地文件而不提供任何远程执行特权。

运行scp时,OpenSSH守护程序会scp使用该-f选项触发一个进程。当您运行sftp时,OpenSSH守护程序将触发一个sftp-server进程。无论哪种情况,子进程都是通过用户的外壳程序执行的,因此外壳程序必须至少支持这些命令,并且使用类似Bourne的语法。任何Bourne风格的shell都会这样做,而csh也会这样做(我认为它的引用规则对于所sshd用的东西足够兼容)。Rssh和scponly允许使用这些命令,而别无其他。/bin/true甚至不会运行这些命令。


那么这是否意味着/ bin / false或/ bin / true无效-或仅允许sftp?
Danny Staple

2
@DannyStaple如果将用户的shell设置为/bin/false或不执行任何操作的其他程序,则scp和sftp均不起作用。对于这两个命令,SSH守护程序都会触发运行专用服务器进程(scp -fsftp-server)的shell命令。它需要一个Bourne样式的外壳,或至少足够接近的近似值(例如rssh,仅允许这几个命令通过)。
吉尔(Gilles)“所以,别再作恶了”,

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.