SFTP如何进行文件共享
导读:SFTP文件共享实现步骤 1. 安装SFTP服务器 SFTP基于SSH协议,默认集成在大多数Linux发行版的OpenSSH服务器中。若未安装,可通过以下命令完成: Debian/Ubuntu:sudo apt update &&...
SFTP文件共享实现步骤
1. 安装SFTP服务器
SFTP基于SSH协议,默认集成在大多数Linux发行版的OpenSSH服务器中。若未安装,可通过以下命令完成:
- Debian/Ubuntu:
sudo apt update & & sudo apt install openssh-server
- CentOS/RHEL/Fedora:
sudo yum install openssh-server
或sudo dnf install openssh-server
安装完成后,启动SSH服务并设置为开机自启:sudo systemctl start sshd & & sudo systemctl enable sshd
。
2. 配置SFTP服务器
编辑SSH配置文件(/etc/ssh/sshd_config
),调整以下关键参数以启用SFTP并强化安全:
- 启用SFTP子系统:确保包含
Subsystem sftp internal-sftp
(默认已存在,无需修改)。 - 限制用户/组访问:添加以下内容,将
sftpusers
替换为你的用户组(后续需创建),限制用户只能通过SFTP登录且无法使用SSH shell:Match Group sftpusers ChrootDirectory %h # 将用户限制在其家目录(需为root所有) ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
- 禁用root登录(可选但推荐):添加
PermitRootLogin no
,防止root用户直接登录。
修改完成后,重启SSH服务使配置生效:sudo systemctl restart sshd
。
3. 创建SFTP用户及目录
为文件共享创建专用用户,并设置符合安全要求的目录结构:
- 创建用户组与用户:
sudo groupadd sftpusers # 创建SFTP用户组 sudo useradd -G sftpusers -d /home/sftpuser -s /sbin/nologin sftpuser # 创建用户并加入组,禁止shell登录 sudo passwd sftpuser # 设置用户密码
- 设置目录权限:
- 用户家目录需属主为root(
chroot
要求),权限设为755:
sudo chown root:root /home/sftpuser & & sudo chmod 755 /home/sftpuser
- 创建共享子目录(如
upload
),属主为用户本身,允许用户上传文件:
sudo mkdir /home/sftpuser/upload & & sudo chown sftpuser:sftpusers /home/sftpuser/upload & & sudo chmod 755 /home/sftpuser/upload
- 用户家目录需属主为root(
4. 连接SFTP服务器
使用客户端工具连接服务器,常见方式有两种:
- 命令行工具(sftp):
在终端输入sftp username@server_ip
(替换为实际用户名和服务器IP),输入密码后进入SFTP交互模式,提示符变为sftp>
。 - 图形化工具(推荐新手):
- FileZilla:打开后输入服务器IP、端口(默认22)、用户名、密码,点击“快速连接”即可。
- WinSCP:Windows专用,界面类似资源管理器,拖拽即可完成文件传输。
5. 文件传输操作
连接成功后,通过以下命令或图形界面操作实现文件共享:
- 上传文件:
- 命令行:
put local_file [remote_path]
(如put ~/test.txt /upload/
,将本地test.txt
上传至服务器/upload/
目录)。 - 图形化:将本地文件拖拽至服务器
upload
目录。
- 命令行:
- 下载文件:
- 命令行:
get remote_file [local_path]
(如get /upload/test.txt ~/Downloads/
,将服务器test.txt
下载至本地Downloads
目录)。 - 图形化:将服务器文件拖拽至本地文件夹。
- 命令行:
- 其他常用操作:
- 列出远程目录:
ls
(命令行)或点击图形化界面的“刷新”按钮。 - 创建远程目录:
mkdir new_folder
(命令行)。 - 删除文件:
rm file.txt
(命令行)或选中文件后按Delete
键(图形化)。
- 列出远程目录:
6. 安全增强措施
为确保文件共享安全,需采取以下额外措施:
- 使用强密码:为用户设置包含大小写字母、数字和符号的复杂密码。
- 启用公钥认证(替代密码):生成SSH密钥对(
ssh-keygen
),将公钥(id_rsa.pub
)复制到服务器用户目录的.ssh/authorized_keys
文件中,配置sshd_config
中的PasswordAuthentication no
禁用密码登录。 - 配置防火墙:允许SSH(端口22)流量通过,阻止其他无关端口:
- UFW(Ubuntu):
sudo ufw allow 22 & & sudo ufw enable
- Firewalld(CentOS):
sudo firewall-cmd --permanent --add-service=ssh & & sudo firewall-cmd --reload
- UFW(Ubuntu):
- 定期更新软件:通过
sudo apt update & & sudo apt upgrade
(Debian/Ubuntu)或sudo yum update
(CentOS/RHEL)更新系统和OpenSSH,修复安全漏洞。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SFTP如何进行文件共享
本文地址: https://pptw.com/jishu/731072.html