[[SFTP]] 全名为 SSH File Transfer Protocol,是一种通过 SSH(Secure Shell)协议进行文件传输的网路协议。它提供了一种安全的方式来传输文件,因为所有传输的数据都会被加密,这可以防止数据在传输过程中被拦截和阅读。 SFTP 不仅可以进行文件传输,还可以进行远程文件管理,例如创建和删除远程目录,移动和重命名远程文件等。这使得 SFTP 成为一种非常强大的工具,尤其是对于需要远程管理文件的开发者来说。
在互联网的早期人们都使用 FTP 来传输文件,FTP 是 File Transfer Protocol 文件传输协议的缩写,这是一个非常流行的文件传输协议。但因为 FTP 在传输过程中不是安全的,只能用于可信网络,所以就需要一个基于安全可靠连接的文件传输协议,这就是 SFTP(Secure File Transfer Protocol)。
SFTP 扩展了 SSH 协议,提供了安全的文件传输能力,提供了文件存取、传输和管理功能。
因为是基于 SSH 协议的,所以首先需要依赖 openssh-server
。
sudo apt install openssh-server
sudo apt install ssh
sudo vi /etc/ssh/sshd_config
文件末尾增加:
Match group sftp
ChrootDirectory /home
X11Forwarding no
AllowAgentForwarding no
AllowTcpForwarding no
PermitTunnel no
ForceCommand internal-sftp
然后重新加载配置:
sudo service ssh restart
创建 sftp
用户组:
sudo addgroup sftp
创建用户并将用户添加到用户组:
sudo useradd -m sftpuser -g sftp
修改密码:
sudo passwd sftpuser
sudo chmod 700 /home/sftpuser/
连接
sftp sftpuser@localhost
如果遇到错误
Connection closed
可以通过如下的方式查询错误日志
grep -i sftp /var/log/*
或者执行
sftp -vvv sftpuser@localhost