温馨提示×

Debian SFTP如何进行文件传输

小樊
49
2025-10-07 10:52:10
栏目: 智能运维

Debian SFTP文件传输完整流程

1. 安装OpenSSH服务器

SFTP基于SSH协议,需先确保系统安装OpenSSH服务器。在Debian终端执行以下命令:

sudo apt update && sudo apt install openssh-server -y 

安装完成后,SSH服务会自动启动(若未启动,可通过sudo systemctl start ssh手动启动)。

2. 配置SFTP服务

2.1 备份原始配置文件

编辑前建议备份/etc/ssh/sshd_config,避免配置错误导致SSH无法使用:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 

使用文本编辑器(如nano)打开配置文件:

sudo nano /etc/ssh/sshd_config 

2.2 修改SFTP子系统

找到#Subsystem sftp /usr/lib/openssh/sftp-server(默认注释),取消注释并将internal-sftp作为更轻量的子系统(推荐):

Subsystem sftp internal-sftp 

2.3 限制用户权限(可选但推荐)

为提升安全性,建议通过用户组限制SFTP用户的访问范围。在配置文件末尾添加以下内容(以sftp_users组为例):

Match Group sftp_users ChrootDirectory %h # 限制用户只能访问其家目录 ForceCommand internal-sftp # 强制使用SFTP,禁止SSH登录 AllowTcpForwarding no # 禁止端口转发 X11Forwarding no # 禁止X11转发 

保存并退出编辑器(Ctrl+OEnterCtrl+X)。

3. 创建SFTP用户及目录

3.1 创建用户组与用户

创建专门的用户组(如sftp_users)和用户(如sftpuser),并设置密码:

sudo groupadd sftp_users sudo useradd -m -G sftp_users -s /sbin/nologin sftpuser # -s /sbin/nologin禁止SSH登录 sudo passwd sftpuser # 按提示设置密码 

3.2 设置家目录权限

SFTP要求用户家目录的所有者为root(权限755),否则无法登录:

sudo chown root:root /home/sftpuser sudo chmod 755 /home/sftpuser 

3.3 创建SFTP传输子目录

在家目录下创建用于文件传输的子目录(如uploads),并设置用户拥有该目录的读写权限:

sudo mkdir /home/sftpuser/uploads sudo chown sftpuser:sftp_users /home/sftpuser/uploads sudo chmod 755 /home/sftpuser/uploads 

注:ChrootDirectory(如/home/sftpuser)必须由root拥有,且不能有写权限;子目录(如uploads)需由用户拥有,用于实际文件操作。

4. 重启SSH服务

配置生效后,重启SSH服务使更改生效:

sudo systemctl restart ssh 

若需设置开机自启(默认已开启),可执行:

sudo systemctl enable ssh 

5. 测试SFTP连接

5.1 命令行测试

在本地终端使用sftp命令连接服务器(替换your_server_ipsftpuser为实际值):

sftp sftpuser@your_server_ip 

输入密码后,若提示Connected to your_server_ip.,则表示连接成功。

5.2 图形界面测试(可选)

使用FileZilla、WinSCP等客户端,输入以下信息连接:

  • 主机:服务器IP地址
  • 用户名sftpuser
  • 密码:步骤3中设置的密码
  • 端口:22(默认,若修改过需对应调整)
  • 协议:SFTP
    连接成功后,即可通过图形界面拖拽文件。

6. 常用SFTP命令

连接成功后,进入SFTP命令模式,常用命令如下:

命令 作用
ls 列出远程当前目录的文件/目录
cd [目录名] 切换远程目录
get [远程文件] [本地路径] 下载远程文件到本地(如get file.txt ~/Downloads
put [本地文件] [远程路径] 上传本地文件到远程(如put ~/Documents/data.csv /uploads
mkdir [目录名] 在远程创建目录
rm [文件名] 删除远程文件
rmdir [目录名] 删除远程空目录
exit/bye 退出SFTP会话
pwd 查看远程当前目录路径
lpwd 查看本地当前目录路径

7. 安全增强(可选)

7.1 启用密钥认证

密钥认证比密码更安全,步骤如下:

  • 生成密钥对(本地执行):
    ssh-keygen -t rsa -b 4096 
    按提示保存密钥(默认~/.ssh/id_rsa)和公钥(~/.ssh/id_rsa.pub)。
  • 复制公钥到服务器
    ssh-copy-id sftpuser@your_server_ip 
  • 使用密钥连接
    sftp -i ~/.ssh/id_rsa sftpuser@your_server_ip 

7.2 限制访问IP

/etc/ssh/sshd_config中添加AllowUsersAllowGroups,仅允许特定用户/IP连接:

AllowUsers sftpuser@192.168.1.* # 仅允许192.168.1.网段的sftpuser 

重启SSH服务使更改生效。

0