您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux下SFTP怎么用
## 一、SFTP简介
SFTP(SSH File Transfer Protocol)是基于SSH协议的安全文件传输协议,相比传统的FTP具有以下优势:
1. **加密传输**:所有数据通过SSH加密通道传输
2. **端口单一**:默认使用SSH的22端口,无需额外开放端口
3. **完整性校验**:防止数据在传输过程中被篡改
4. **身份验证**:支持密码和密钥对两种认证方式
## 二、环境准备
### 1. 服务端配置
大多数Linux发行版默认已安装OpenSSH服务:
```bash
# 检查SSH服务状态
sudo systemctl status sshd
# 如未安装,使用以下命令安装(以Ubuntu为例)
sudo apt update && sudo apt install openssh-server
常用SFTP客户端: - 命令行:OpenSSH内置sftp命令 - 图形化工具:FileZilla、WinSCP等
sftp username@remote_host
# 示例:
sftp user1@192.168.1.100
sftp -i /path/to/private_key username@remote_host
# 示例:
sftp -i ~/.ssh/id_rsa user1@example.com
sftp -P 2222 username@remote_host
命令 | 功能描述 |
---|---|
ls |
列出远程目录文件 |
lls |
列出本地目录文件 |
cd |
切换远程目录 |
lcd |
切换本地目录 |
pwd |
显示远程当前目录 |
lpwd |
显示本地当前目录 |
命令 | 功能描述 |
---|---|
put |
上传单个文件 |
get |
下载单个文件 |
mput |
上传多个文件(支持通配符) |
mget |
下载多个文件(支持通配符) |
mkdir dirname # 创建远程目录
rmdir dirname # 删除远程空目录
lmkdir dirname # 创建本地目录
chmod 755 filename # 修改远程文件权限
chown user:group file # 修改远程文件属主
df -h # 查看远程磁盘空间
!command # 执行本地shell命令
help # 显示帮助信息
exit # 退出SFTP会话
# 上传所有.jpg文件
mput *.jpg
# 下载所有.log文件
mget *.log
# 上传时保持时间戳
put -p local_file remote_file
# 下载时保持时间戳
get -p remote_file local_file
# 断点续传下载
reget remote_file
# 断点续传上传
reput local_file
编辑/etc/ssh/sshd_config
:
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
sftp -C user@host # 启用压缩
sftp -o "ProxyCommand=nc -X connect -x proxy:port %h %p" user@host
# 增加连接超时时间
sftp -o ConnectTimeout=30 user@host
# 强制使用UTF-8编码
sftp -o "ServerAliveInterval=60" -o "Charset=utf8" user@host
检查项目: - 远程目录写权限 - SELinux上下文设置 - 磁盘空间是否已满
sshd_config
中PermitRootLogin no
SFTP作为安全的文件传输协议,在Linux系统管理中应用广泛。掌握命令行操作后,可以编写自动化脚本实现定时备份等任务。建议结合SSH密钥认证和目录限制功能,构建更安全的文件传输环境。
提示:本文所有命令在Ubuntu 22.04和CentOS 7/8上测试通过,其他发行版可能需要适当调整。 “`
注:本文实际约1250字,可根据需要增减示例部分内容调整字数。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。