在Ubuntu 24.04环境下配置SFTP服务


前言

前面我们知道了在Ubuntu 24.04环境下配置NFS共享和vsftpd服务, 这次我们在Ubuntu 24.04环境下配置SFTP服务


一、初始配置

1.1 安装软件包

这两个命令更新软件包列表并安装 NFS 客户端和 SSH 服务器。

sudo apt update
sudo apt install nfs-common openssh-server -y

1.2 挂载 NFS 服务

sudo mkdir -p /mnt/nfs_share: 创建挂载点目录 /mnt/nfs_share
sudo nano /etc/fstab: 打开包含文件系统信息的文件,该文件在系统启动时自动挂载
1.0.68.43:/dev-core-s3-bucket-ftp /mnt/nfs_share nfs nolock,hard 0 0: 添加以下行到文件中,指定从 NFS 服务器挂载共享目录到本地目录
sudo systemctl daemon-reload: 重新加载 systemd 管理器配置以应用新的挂载配置
sudo mount -a: 挂载文件中指定的所有文件系统,包括新添加的 NFS 共享

sudo mkdir -p /mnt/nfs_share
sudo nano /etc/fstab
1.0.68.43:/dev-core-s3-bucket-ftp /mnt/nfs_share nfs nolock,hard 0 0
sudo systemctl daemon-reload
sudo mount -a

1.3 配置 sshd_config

sudo nano /etc/ssh/sshd_config # 打开 SSH 服务器配置文件进行编辑

PubkeyAuthentication yes # 设置为 yes,允许客户端使用公钥认证。这种方法比传统密码认证更安全,因为它依赖于加密密钥对,而不是容易被猜测或破解的密码。

ChallengeResponseAuthentication yes # 启用质询响应认证、密码认证和 PAM(可插拔认证模块)
PasswordAuthentication yes
UsePAM yes

Match User ubuntu:
    ChrootDirectory none # 不对用户 ubuntu 应用 chroot 限制
    ForceCommand none # 不强制执行特定命令
    AllowTcpForwarding yes # 允许 TCP 转发
    X11Forwarding yes # 允许 X11 转发

Match User *:
    ChrootDirectory /mnt/nfs_share/%u # 对所有其他用户应用 chroot 限制,目录设置为 /mnt/nfs_share/username
    ForceCommand internal-sftp # 强制使用内部 SFTP 服务器
    AllowTcpForwarding no # 禁止 TCP 转发
    X11Forwarding no # 禁止 X11 转发
    AuthorizedKeysFile /mnt/nfs_share/%u/.ssh/authorized_keys # 指定认证密钥文件的位置,对于每个用户,这个文件位于 /mnt/nfs_share/username/.ssh/authorized_keys

sudo systemctl restart ssh # 重启 SSH 服务以应用新配置

1.4 配置 mnt/nfs_share 文件夹权限

sudo chown root:root /mnt/nfs_share: 将 /mnt/nfs_share 目录的所有者和组更改为 root 用户
sudo chmod 755 /mnt/nfs_share: 将/mnt/nfs_share 目录的权限设置为755

sudo chown root:root /mnt/nfs_share
sudo chmod 755 /mnt/nfs_share

二、创建新用户

*$USER: 这是需要创建的用户名,请自行更改

2.1 创建用户

sudo adduser $USER

2.2 配置文件夹权限

sudo chown root:root /mnt/nfs_share/$USER: 将目录的所有者和组更改为 root
sudo chmod 755 /mnt/nfs_share/$USER: 设置目录权限为 755,意味着所有者拥有读、写和执行权限,而组和其他人只有读和执行权限

sudo chown root:root /mnt/nfs_share/$USER 
sudo chmod 755 /mnt/nfs_share/$USER 

注意:如果在/mnt/nfs_share下不存在当前用户文件夹,则需要手动创建它

sudo mkdir -p /mnt/nfs_share/$USER

2.3 配置 .ssh 文件夹权限

sudo mkdir -p /mnt/nfs_share/$USER/.ssh: 创建.ssh文件夹
*(用户可以在此文件夹上传自己的authorized_keys文件,以便用自己的公钥身份登录。)
sudo chown $USER:$USER /mnt/nfs_share/$USER/.ssh: 将 .ssh 目录的所有者和组更改为用户
sudo chmod 700 /mnt/nfs_share/$USER/.ssh: 设置 .ssh 目录的权限为 700,意味着只有所有者有读、写和执行权限

sudo mkdir -p /mnt/nfs_share/$USER/.ssh
sudo chown $USER:$USER /mnt/nfs_share/$USER/.ssh
sudo chmod 700 /mnt/nfs_share/$USER/.ssh

三、常见问题

3.1 其他检查命令

mount | grep /mnt/nfs_share: 检查 /mnt/nfs_share 是否已挂载,如果成功挂载,将显示相关的挂载信息
cat /var/log/auth.log | grep "sshd": 查看 SSH 认证日志中与 sshd 相关的条目,这有助于排查 SSH 登录和认证问题

mount | grep /mnt/nfs_share
cat /var/log/auth.log | grep "sshd"

3.2 注意事项

创建用户时,文件夹 /mnt/nfs_share/$USER 必须存在,否则用户将无法登录。

对于存在于 S3 的文件夹,需要等待五分钟才能在 /mnt/nfs_share 中出现。这是因为存储网关中共享文件夹的最小刷新缓存时间为五分钟。

四、vsftpd 和 sshd 的比较与考量

vsftpd (非常安全的 FTP 守护进程)

优点:
支持多种协议:vsftpd 支持 FTP 和 FTPS(通过 TLS 加密),允许灵活选择传输协议。
成熟且广泛使用:作为一款成熟的 FTP 服务器,vsftpd 被广泛应用于企业中,拥有丰富的社区和文档资源。
高性能:vsftpd 以其高性能和稳定性著称,适用于大文件传输需求。
缺点:
未加密的 FTP:默认情况下,FTP 传输是未加密的,不适合传输敏感数据(尽管可以配置为 FTPS)。
复杂的防火墙配置:FTPS 需要多个端口,这可能需要复杂的防火墙设置。
配置复杂性:设置 TLS/SSL 加密可能需要额外的工作和维护。

sshd (安全外壳守护进程,用于 SFTP)

优点:
高安全性:SFTP 使用 SSH 协议进行加密传输,确保数据安全。
简单的防火墙配置:SFTP 仅需要一个端口(默认是 22),使防火墙配置相对简单,非常适合网络访问控制严格的环境。
广泛支持:大多数现代操作系统默认支持 ssh 和 sftp,使配置和管理相对简单。
与 SSH 一致的管理:利用现有的 SSH 配置和用户管理机制,减少额外的管理开销。
缺点:
性能:由于 SFTP 的加密和机制,在处理大量或大文件传输时可能会稍慢。
权限问题:使用 NFS 共享时,可能存在权限和挂载配置问题,需要额外调整和调试。
与 FTP 不完全兼容:SFTP 命令与 FTP 不同,某些 FTP 客户端可能不完全支持所有 SFTP 功能。

总结

上述可以通过账号密码进行登录,也可以通过.ssh/authorized_keys进行登录

通过上述步骤,我们已经成功在Ubuntu 24.04环境下配置SFTP服务,并且可以通过SFTP实现对共享文件夹的访问。希望对大家有所帮助!!!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值