解决方法:
1. 编辑 /etc/ssh/sshd_config 配置文件
2. 重启SSHD服务
service sshd restart
还有一种特殊情况,也是本文重点要介绍的:
当启用sftp-server后,使用FlashFXP等工具传输文件的时候,仍然失败,这时候就要用另外一种subsystem的类型了 .
把 /etc/ssh/sshd_config 配置文件注释掉的一行替换成以下内容
#替换的内容
Subsystem sftp internal-sftp
#重启sshd服务命令
service sshd restart
最后再次用FlashFXP连接linux(Redhat 6/CentOS 7环境)服务器即可正常连接.
最后:关于Internal-sftp和Sfp-server之间到底有何关系,为什么要用internal-sftp,请参考如下 .
sftp-server和internal-sftp都是OpenSSH的一部分。
sftp-server是一个独立的二进制文件, internal-sftp只是一个配置关键字,告诉sshd使用内置sshd的SFTP服务器代码,而不是运行另一个进程(通常是sftp-server)。
从功能的角度来看,sftp-server和internal-sftp几乎完全相同。 它们是使用相同的源代码构建的。
internal-sftp的主要优点是,当与ChrootDirectory指令一起使用时,它不需要任何支持文件。
几个例子:
1.管理员可能依赖登录shell配置来阻止某些用户登录。切换到internal-sftp会绕过限制,因为不再涉及登录shell。
2.使用sftp-server二进制文件(作为一个独立的进程),你可以使用一些hacks,比如在sudo下运行SFTP。
3.对于SSH-1(如果有人仍在使用它),则根本不涉及Subsystem指令,使用SSH-1的SFTP客户端明确告知服务器,服务器应运行什么二进制文件。 因此,传统的SSH-1 SFTP客户端具有硬编码的sftp服务器名称。
这边因为我给用户登陆脚本做了限制,所以发生了上述的问题,启用internal-sftp就可以完美的解决掉了。
参考文章:
FlashFXP连接linux服务器(centos7环境)提示连接失败 (Unable to access SFTP sub-system, operation failed.)-CSDN博客
【OpenSSH】internal-sftp和sftp-server之间的区别和联系什么? - 简书