在 Ubuntu 上通过 SFTP(SSH File Transfer Protocol) 传文件,常见有几种方式:命令行、图形界面、脚本自动传输。下面按使用场景给你说明。
sftp 用户名@服务器IP
例如:
sftp user@192.168.1.100
如果是非默认端口(如 2222):
sftp -P 2222 user@192.168.1.100
连接成功后提示符会变成:
sftp>
put 本地文件
示例:
put test.txt
上传到指定目录:
put test.txt /home/user/
上传整个目录:
put -r mydir
get 服务器文件
示例:
get test.txt
下载到本地指定目录:
get test.txt /home/local/
下载整个目录:
get -r mydir
ls # 查看服务器目录
lls # 查看本地目录
pwd # 服务器当前路径
lpwd # 本地当前路径
cd # 切换服务器目录
lcd # 切换本地目录
exit # 退出
如果你只是传文件,不进入交互模式:
scp file.txt user@192.168.1.100:/home/user/
scp user@192.168.1.100:/home/user/file.txt ./
指定端口:
scp -P 2222 file.txt user@host:/path/
sftp://user@192.168.1.100
sudo apt install filezilla
sftp://IPsftp user@host <<EOF
put file.txt /remote/path/
exit
EOF
或使用 sshpass(不推荐生产环境):
sshpass -p '密码' scp file.txt user@host:/path/
sudo systemctl status ssh
如果你愿意,可以告诉我:
我可以直接给你一套最合适的命令或脚本。