在 Linux 下使用 SFTP(SSH File Transfer Protocol) 一般用来在本地和远程服务器之间安全地传输文件。下面从基本用法到常见操作给你一个完整说明。
sftp user@host
示例:
sftp root@192.168.1.100
如果是非默认端口(如 2222):
sftp -P 2222 user@host
连接成功后会进入 sftp> 提示符。
ls # 查看远程目录
lls # 查看本地目录
pwd # 远程当前目录
lpwd # 本地当前目录
cd /remote/path
lcd /local/path
put localfile
put localfile remote_name
上传整个目录(需要开启递归):
put -r localdir
get remotefile
get remotefile local_name
下载整个目录:
get -r remotedir
rm file
rmdir dir
mkdir dirname
exit
# 或
bye
sftp user@host:/remote/path <<< "put localfile"
或:
echo "put localfile" | sftp user@host
sftp user@host:/remote/file ./local_file
sftp -i ~/.ssh/id_rsa user@host
确保:
600~/.ssh/authorized_keys-v 查看详细信息:sftp -v user@host
sudo 的 SFTP 需要特殊配置(不推荐直接 root)| 工具 | 安全性 | 交互性 | 说明 |
|---|---|---|---|
| ftp | 否 | 强 | 明文传输 |
| sftp | 是 | 强 | 基于 SSH |
| scp | 是 | 弱 | 只适合简单拷贝 |
如果你有具体场景(比如:自动备份、脚本批量传输、Windows 到 Linux),可以告诉我,我可以给你更针对性的示例。