linux

如何通过SFTP在Linux上远程管理服务器

小樊
53
2025-10-27 09:24:15
栏目: 云计算

通过SFTP在Linux上远程管理服务器的完整步骤

1. 安装OpenSSH服务器(若未安装)

SFTP是OpenSSH的一部分,大多数Linux发行版默认安装。若未安装,可通过以下命令安装:

2. 配置SFTP服务

编辑SSH配置文件/etc/ssh/sshd_config,添加或修改以下内容以限制用户仅能通过SFTP访问并增强安全性:

# 确保SFTP子系统启用(默认路径可能因系统而异)
Subsystem sftp internal-sftp

# 限制sftpusers组的用户只能使用SFTP,且锁定在自家目录
Match Group sftpusers
    ChrootDirectory %h  # 将用户限制在家目录(Chroot环境)
    ForceCommand internal-sftp  # 强制使用SFTP,禁止SSH shell访问
    AllowTcpForwarding no  # 禁止TCP转发
    X11Forwarding no  # 禁止X11转发

关键说明

3. 创建SFTP用户组与用户

为SFTP用户创建专用组,并添加用户(避免使用系统管理员账户):

# 创建sftpusers组
sudo groupadd sftpusers

# 创建用户(如"sftpuser"),并添加到sftpusers组
sudo useradd -m -G sftpusers -s /bin/false sftpuser  # -s /bin/false禁止shell登录

# 设置用户密码(或使用密钥认证,更安全)
sudo passwd sftpuser

关键说明

4. 设置用户目录权限

SFTP的ChrootDirectory要求家目录必须由root拥有且权限为755,用户无法写入家目录本身,但可在家目录下创建子目录(如upload)用于文件上传:

# 创建用户家目录(若未自动创建)
sudo mkdir -p /home/sftpuser

# 设置家目录所有者为root,权限为755
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser

# 在家目录下创建可上传文件的子目录(如upload)
sudo mkdir -p /home/sftpuser/upload

# 设置子目录所有者为用户,权限为755(或775,根据需求)
sudo chown sftpuser:sftpusers /home/sftpuser/upload
sudo chmod 755 /home/sftpuser/upload

关键说明

5. (可选)配置密钥认证(更安全)

为避免密码泄露,建议使用SSH密钥认证:

6. 重启SSH服务应用配置

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

7. 使用SFTP客户端连接

命令行连接

在本地终端输入以下命令,替换your_username(如sftpuser)和remote_host(服务器IP或域名):

sftp your_username@remote_host

输入密码(或密钥密码)后,进入SFTP交互界面。

图形化客户端连接

推荐使用FileZilla(跨平台)或WinSCP(Windows):

8. 常用SFTP命令

连接成功后,可使用以下命令管理文件:

9. 安全注意事项

0
看了该问题的人还看了