一、前置准备:安装与配置SFTP服务
安装OpenSSH服务器
大多数Linux发行版默认包含OpenSSH服务器(自带SFTP功能)。若未安装,可通过以下命令安装:
sudo apt update && sudo apt install openssh-serversudo yum install openssh-serversudo dnf install openssh-server。配置SFTP服务(可选但推荐)
编辑SSH配置文件/etc/ssh/sshd_config,完成以下设置以增强安全性:
Subsystem sftp /usr/lib/openssh/sftp-server(部分系统路径为/usr/libexec/openssh/sftp-server);sftpusers组为例):在文件末尾添加:Match Group sftpusers
ChrootDirectory %h # 限制用户只能访问自己的家目录
ForceCommand internal-sftp # 强制使用SFTP,禁止SSH shell访问
AllowTcpForwarding no
X11Forwarding no
sftpusers组并添加用户:sudo groupadd sftpusers → sudo usermod -aG sftpusers your_username;sudo chown root:root /home/your_username → sudo chmod 755 /home/your_username(用户家目录必须归root所有,权限为755)。重启SSH服务
应用配置变更:sudo systemctl restart sshd(Debian/Ubuntu用ssh替代sshd)。
二、使用SFTP连接远程服务器
命令行连接
基本语法:sftp [选项] 用户名@远程主机。常见场景:
sftp your_username@remote_host(如192.168.1.100或域名);sftp -oPort=22806 your_username@remote_host;sftp>)。图形界面连接(可选)
若偏好图形操作,可使用以下工具:
三、SFTP常用命令 连接成功后,可通过以下命令完成文件操作:
ls(查看远程目录内容)、cd 远程路径(切换远程目录)、lcd 本地路径(切换本地目录)、mkdir 远程目录名(创建远程目录)、rmdir 远程目录名(删除远程空目录);get 远程文件 [本地路径](下载单个文件,如get index.php ~/downloads/)、put 本地文件 [远程路径](上传单个文件,如put ~/Documents/report.pdf /var/www/)、mget 远程文件*(下载多个文件,支持通配符)、mput 本地文件*(上传多个文件)、rm 远程文件(删除远程文件);pwd(查看远程当前目录)、lpwd(查看本地当前目录)、exit/bye(退出SFTP会话)。四、安全注意事项
ssh-keygen -t rsa),将公钥复制到远程服务器(ssh-copy-id your_username@remote_host),避免每次输入密码;sftpusers组和ChrootDirectory限制用户只能访问自己的家目录,防止越权操作;ufw:sudo ufw allow from 192.168.1.0/24 to any port 22。