将 /etc/ssh/sshd_config 中的
Subsystem sftp /usr/libexec/openssh/sftp-server
改为(没有这一行,就新添加)
Subsystem sftp internal-sftp
重启sshd后,sftp正常工作了。
sudo /etc/init.d/sshd reload
sudo /etc/init.d/sshd restart
但是原因仍然不知为何,回头看看,发现 /usr/libexec/openssh/sftp-server 没有任何权限:
# ll /usr/libexec/openssh/sftp-server
----------. 1 root root 63544 2月 22 2013 /usr/libexec/openssh/sftp-server
正常情况应该是这样:
# ll /usr/libexec/openssh/sftp-server
-rwxr-xr-x. 1 root root 63544 Nov 23 2013 /usr/libexec/openssh/sftp-server
咨询大师说 停止openssh 服务 rm sftp-server文件 正常的scp 过去 再启动openssh
但是我是远程操作,生产系统,不敢停止openssh服务,万一连不上就瓜了,大师建议那就先这样用着。
Note:/usr/libexec/openssh/sftp-server没任何权限,root用户都没法删除修改。