如何在 Linux 服务器上安装和使用 SFTP?

哈,这Linux服务器上装SFTP的步骤啊,我以前干这活儿的时候,这玩意儿可是家常便饭。
来,咱们聊聊这事儿。

首先,你得安装OpenSSH软件包。
你得先确认是不是已经装了,比如在Debian/Ubuntu系统上,你就得用命令dpkg -l | grep ssh,看看输出里有没有openssh-sftp-server。
要是有了,那说明你早就装好了。
要没装,那你就得从官方存储库里装,Debian/Ubuntu系统就用sudo apt update && sudo apt install openssh-server openssh-sftp-server,RHEL/CentOS/Fedora系统就sudo yum install openssh-server openssh-sftp-server,CentOS/RHEL7 或更早版本,你就得用sudo dnf install openssh-server openssh-sftp-server。

然后,你得创建SFTP专用用户和组。
先创建用户组,sudo groupadd sftpgroup。
接着创建用户,加入组,指定用户主目录,禁止用户通过SSH登录,sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuser。
记得把用户加入sftpgroup组,指定用户主目录为/srv/sftpuser,用/sbin/nologin禁止用户登录。

设置用户密码,sudo passwd sftpuser,输入个强密码,然后确认。

接下来,配置Chroot目录。
创建主目录和上传目录,sudo mkdir -p /srv/sftpuser/data。
设置目录权限,主目录所有权归root,组权限为可读可执行,sudo chown root:root /srv/sftpuser,sudo chmod 7 5 5 /srv/sftpuser。
上传目录所有权归SFTP用户,sudo chown sftpuser:sftpgroup /srv/sftpuser/data,sudo chmod 7 5 5 /srv/sftpuser/data。

然后,配置SSH以启用SFTP。
编辑SSH配置文件,sudo nano /etc/ssh/sshd_config,注释掉原有的SFTP子系统配置,添加新的配置,保存并重启SSH服务,sudo systemctl restart sshd。

连接和使用SFTP,用命令行客户端连接,默认端口(2 2 )连接:sftp sftpuser@服务器IP,自定义端口连接(如端口2 2 2 2 ):sftp -P 2 2 2 2 sftpuser@服务器IP。
基本命令就是pwd显示当前远程目录,ls列出远程目录内容,lpwd显示本地目录,lls列出本地目录内容,put 本地文件路径/data/上传文件到远程/data目录,get 远程文件路径下载文件到本地,exit退出SFTP会话。

验证配置,测试文件上传,上传文件到/data目录,检查远程目录,检查权限问题。

最后,安全建议,禁用SSH登录,使用密钥认证,定期审计,防火墙配置。

说实话,我当时也没想明白这SFTP的配置,但是一步步来,慢慢就明白了。
这玩意儿,关键就是细节,得一步一步来,不能急。

linux的sftp命令

SFTP就是SSH传输文件。
直接用。

传输文件用put。
下载用get。

ls看文件。
cd转目录。

用用户名加地址连。
密码认证。

指定端口加-P。

用密钥连更安全。