Linux 如何开启SFTP
打开终端,使用编辑器vi或nano等打开/etc/ssh/sshd_config文件,
找到# Subsystem sftp /usr/libexec/openssh/sftp-server这行,并在其下面添加Subsystem sftp internal-sftp。
保存并退出编辑器。
使用systemctl restart sshd.service命令重启SSH服务。
sftp 原理:
SFTP 是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。
SFTP 与 FTP有着几乎一样的语法和功能。
SFTP 为 SSH的一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol的安全文件传输子系统,SFTP本身没
有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。
但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
所以 一般,我们开启 sshd 服务后, 无需过多的配置 sftp 的。
{#more-13232}
但是目前的这台服务器,被测试的同学给修改了权限。
这样涉及到了 很多服务, 最大的就是 ssh
修改后是这样的
修改前:
修改后重启 sshd 服务
systemctl restart sshd
尝试 sftp ,没有成功。
检查 sshd_config 发现:
Subsystem sftp /usr/libexec/openssh/sftp-server
那么对应的 目录,我们去看看权限。
被人修改权限后:
被人修改权限前:
对比 少文件的原因是 openssh 的版本不一样
我改了 2个文件的权限: 没有重启服务, 可以正常使用 fstp了。
PS:但如果使用Java编写的程序连接,发现出现了错误,报的错误是Auth fail ,验证出错。
可能的原因:
/etc/ssh/sshd_config文件夹的一个配置项PasswordAuthentication 默认为no,"PasswordAuthentication"设置是否允许口令验证。把它改为yes,重启服务就OK了。