Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
#1 楼
sftp-server
和internal-sftp
都是OpenSSH的一部分。 sftp-server
是独立的二进制文件。 internal-sftp
只是一个配置关键字,告诉sshd
使用内置在sshd
中的SFTP服务器代码,而不是运行另一个进程(通常是sftp-server
)。在2008年?)比独立的internal-sftp
二进制文件高。但这是目前的默认设置。 sftp-server
现在是冗余的,可能为了向后兼容而保留。我相信没有理由将
sftp-server
用于新安装。几乎一样。它们是使用相同的源代码构建的。sftp-server
的主要优点是,与sftp-server
指令一起使用时不需要支持文件。internal-sftp
手册页中的语录: /> 对于
internal-sftp
指令:命令
ChrootDirectory
实现了SFTP文件传输子系统。服务器。这可以简化使用sshd_config(5)
强制在客户端上使用不同文件系统根目录的配置。对于
Subsystem
指令:与sftp-server
一起使用时不需要支持文件的进程内SFTP服务器。对于
internal-sftp
指令:ChrootDirectory
必须包含必要的文件和目录以支持用户的会话。对于交互式会话,这至少需要一个外壳,通常是ForceCommand
和基本internal-sftp
节点,例如ChrootDirectory
,ChrootDirectory
,ChrootDirectory
,sh
,/dev
和null
设备。对于使用SFTP的文件传输会话,如果使用进程内sftp-server,则无需进行其他环境配置,尽管使用日志记录的会话可能在某些操作系统的chroot目录中需要zero
(有关详细信息,请参阅stdin
)。 /> stdout
的另一个优点是性能,因为不需要为其运行新的子进程。stderr
遇到tty
时可以自动使用/dev/log
,因为功能相同,并且sftp-server
甚至具有上述优点。但是在某些情况下,会有差异。很少有示例:
管理员可能依赖登录shell配置来阻止某些用户登录。切换到
internal-sftp
将绕过此限制。
使用
sshd
二进制文件(作为独立进程),您可以使用一些技巧,例如在internal-sftp
下运行SFTP。对于SSH-1(如果有人仍在使用它),根本不涉及sftp-server
指令。使用SSH-1的SFTP客户端会明确告知服务器该服务器应运行的二进制文件。因此,旧版SSH-1 SFTP客户端使用硬编码的internal-sftp
名称。#2 楼
存在可以与OpenSSH一起使用的替代SFTP实现:http://www.greenend.org.uk/rjk/sftpserver/
https:// github .com / mysecureshell / mysecureshell
#3 楼
您可以将authorized_key锁定到外部sftp服务器。 ssh:
command="/usr/libexec/openssh/sftp-server" ssh-rsa AAAA…== user@host.com
尝试执行其他任何操作都会挂起:
$ sftp host:/etc/group /tmp Connecting to host... Fetching /etc/group to /tmp/group /etc/group 100% 870 0.9KB/s 00:00
A,除非修改sshd_config,否则没有简单的方法将密钥锁定到chroot。对于用户而言,无需系统管理员的干预就可以做到。
#4 楼
如果您只想锁定一个帐户以仅使用SFTP,则只需为其帐户提供默认的shell / sbin / nologin评论
OP实际上提出了完全不同的要求。
– Piotr P. Karwasz
19/12/30在20:08
评论
ForceCommand internal-sftp应该实现相同
–ptman
16年9月9日在7:13
方便的是,没有chroot,您可以使用sshfs host:/home/user/.ssh〜/ hackme将所有这些设置重新编辑以打开访问权限(如果以后改变主意)。
–sh1
17年9月23日在6:15
@ sh1更重要的一点是,如果要将用户仅锁定到他们自己的.ssh / authorized_keys文件中的sftp,则最好确保将他们chroot到不是.ssh的位置可以访问,或者他们可以用更多的权限替换其authorized_keys文件
–丹尼尔·法瑞尔(Daniel Farrell)
19年11月21日在14:51