在 CentOS 上通过 SFTP 传输文件,常用方式有以下几种,按使用场景给你说明(从最常见到进阶)。
sftp username@服务器IP
示例:
sftp root@192.168.1.100
✅ SFTP 默认使用 SSH 22 端口
如果 SSH 端口不是 22:
sftp -P 2222 username@服务器IP
pwd # 远程目录
lpwd # 本地目录
ls
lls
cd /data
lcd /home/user
put localfile.txt
put localfile.txt /remote/path/
put -r localdir
get remotefile.txt
get remotefile.txt /local/path/
get -r remotedir
bye
scp 直接传输(更快、简单)scp localfile.txt username@服务器IP:/remote/path/
scp -r localdir username@服务器IP:/remote/path/
scp username@服务器IP:/remote/file /local/path/
连接信息
22systemctl status sshd
systemctl start sshd
systemctl enable sshd
firewall-cmd --list-ports
firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --reload
chmod 755 /目标目录
chown 用户名:用户组 /目标目录
或临时用:
sudo
如果你需要 只让某个用户使用 SFTP,不能登录系统,可以配置 sshd_config:
Match User sftpuser
ChrootDirectory /data/sftp
ForceCommand internal-sftp
⚠️ 需要仔细配置权限,否则会登录失败。
| 场景 | 推荐方式 |
|---|---|
| Linux ↔ Linux | sftp / scp |
| Windows → CentOS | WinSCP |
| 服务器运维 | SFTP + SSH |
| 大文件 | scp 或 rsync |
如果你愿意,可以告诉我:
我可以给你 精确命令和配置示例。