SFTP(SSH File Transfer Protocol)是一种安全的文件传输协议,通过加密的SSH连接传输文件,比传统的FTP更安全。以下是使用SFTP的详细方法:
sftp username@hostname
# 或指定端口
sftp -P port_number username@hostname
常用SFTP客户端: - WinSCP (Windows) - FileZilla (跨平台) - Cyberduck (Mac) - Transmit (Mac)
| 命令 | 描述 |
|---|---|
ls |
列出远程目录内容 |
lls |
列出本地目录内容 |
cd |
更改远程工作目录 |
lcd |
更改本地工作目录 |
get |
下载文件 |
put |
上传文件 |
mget |
下载多个文件 |
mput |
上传多个文件 |
rm |
删除远程文件 |
mkdir |
创建远程目录 |
exit/bye |
退出SFTP会话 |
sftp> get remote_file.txt
sftp> get remote_file.txt local_name.txt # 下载并重命名
sftp> get -r remote_directory # 递归下载目录
sftp> put local_file.txt
sftp> put local_file.txt remote_name.txt # 上传并重命名
sftp> put -r local_directory # 递归上传目录
bash
ssh-keygen -t rsabash
ssh-copy-id username@hostname#!/bin/bash
sftp -b batchfile.txt username@hostname
其中batchfile.txt包含SFTP命令,如:
put file1.txt
put file2.txt
bye
连接被拒绝:
- 检查服务器SSH服务是否运行:sudo service ssh status
- 检查防火墙设置是否允许22端口
认证失败:
- 确认用户名/密码正确
- 检查公钥是否已正确添加到服务器的~/.ssh/authorized_keys
传输速度慢:
- 尝试压缩传输:sftp -C username@hostname
- 检查网络状况
通过以上方法,您可以安全高效地使用SFTP进行文件传输。对于敏感数据,建议始终使用SFTP而非FTP。