【Linux 安装sftp和修改sftp工作目录】

1、创建SFTP 服务配置文件

1.1将sshd_config 文件复制一份,作为SFTP 服务的配置文件。

cp /etc/ssh/sshd_config /etc/ssh/sftpd_config

1.2编辑/etc/ssh/sftpd_config文件

vi /etc/ssh/sftpd_config

1.3找到port 改成10022

Port 10022

1.4找到PidFile 改成如下

PidFile /var/run/sftpd.pid

2、创建服务启动文件

2.1将SSH 服务对应的systemd unit 文件复制一份,用于SFTP 服务

cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service

2.2编辑sftpd.service 文件

vi /etc/systemd/system/sftpd.service

2.3将Description 修改为如下:

Description=SFTP server daemon

2.4将After修改为如下:

After=syslog.target network.target auditd.service sshd.service

2.5将ExecStart修改为如下

ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sftpd_config $OPTIONS

3、在SSH 服务配置文件中禁用sftp

### 3.1修改/etc/ssh/sshd_config
vi /etc/ssh/sshd_config
## 3.2 将sftp 功能对应的配置行注释,禁用sftp 功能,注释下面一行
#Subsystem sftp /usr/libexec/openssh/sftp-server

4、限制允许访问SFTP 服务的用户范围

## 4.1修改/etc/ssh/sftpd_config,
vi /etc/ssh/sftpd_config
## 4.2将原有sftp 功能对应的配置行注释,并在其下增加新的配置,限制仅允许用户组sftponly 中的用户才可访问SFTP 服务。

#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp -l INFO -f AUTH
AllowGroups sftponly
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp -l INFO

5、重启SSH 和SFTP 服务

systemctl restart sshd
systemctl restart sftpd
##注: RHEL6.X 需使用service sshd restart命令。

6、查看端口启动情况,确认10022已开启

netstat -anpt|grep LISTEN

6.1、重新装载配置文件

service sshd reload

6.2、日志配置

cp /etc/rsyslog.conf /etc/rsyslog.conf.bk

vim /etc/rsyslog.conf
#新增以下配置:
auth,authpriv.* /var/log/sftp.log

6.3、重启rsyslog 服务:

service rsyslog restart
#服务启动后,日志生成在: /var/log/sftp.log

7、创建sftp专用用户组

7.1、看一下生产的服务器上是否有这个属组,如果有可以不写

groupadd sftponly           

7.2、创建sftp专用用户,禁止使用shell功能

useradd sftpuser -g sftponly -s /bin/false

7.3、设置sftp用户密码#用户密码是双引号里面的,可修改

#如果命令黑名单则
passwd sftpuser 
#首次输入密码
123
#确认密码
123

7.4、进入sftp用户家目录

cd /home/sftpuser/

7.5、删除ssh登录文件

rm -f .b*

7.6、创建sftp工作目录

mkdir /home/sftpuser/sftpwork     #可更改路径

7.7、修改sftp工作目录属组

chown sftpuser:sftponly /home/sftpuser/sftpwork

7.8、修改sftp工作目录权限

chmod 755 /home/sftpuser
chmod 755 /home/sftpuser/sftpwork/

7.9、修改sftp用户家目录用户

chown root:sftponly /home/sftpuser

8、如果要修改家目录

sftp的工作目录上级目录必须是root,且权限不能是777

mkdir -p /intf/sftpdir/sftpwork/
cd /etc/ssh
vim sftpd_config
#将ChrootDirectory %h 注释掉
#ChrootDirectory %h
#并在下面添加
ChrootDirectory /intf/sftpdir
cd /etc/ssh
systemctl restart sftpd
#查看端口
netstat -anpt | grep LISTEN | grep 10022
#赋权
chown root:sftponly /intf/sftpdir
chmod 755 /intf
chmod 755 /intf/sftpdir
chmod 755 /intf/sftpdir/sftpwork
chown sftpuser:sftponly /intf/sftpdir/sftpwork
Linux系统中离线安装SFTP服务,主要依赖于OpenSSH的安装包。由于SFTP(Secure File Transfer Protocol)是SSH协议的一部分,因此不需要额外安装其他软件包,只需要确保OpenSSH的相关组件已正确安装并配置即可。以下是具体的步骤: ### 1. 准备离线安装包 在具备网络连接的环境中,首先下载适用于目标系统的OpenSSH RPM包及其依赖项。以CentOS为例,可以使用以下命令下载: ```bash yum install --downloadonly --downloaddir=/path/to/save openssh-server ``` 将`/path/to/save`替换为实际保存RPM文件的路径。下载完成后,将这些RPM文件拷贝到目标离线系统上。 ### 2. 安装OpenSSH服务 在离线系统上,进入存放RPM包的目录,执行以下命令进行安装: ```bash rpm -ivh openssh-server-*.rpm ``` 该命令会安装OpenSSH服务器端组件,包括SFTP支持所需的模块[^2]。 ### 3. 配置SFTP服务 编辑SSH配置文件`/etc/ssh/sshd_config`,启用SFTP服务并设置用户限制。添加或修改以下内容: ```bash # 启用SFTP子系统 Subsystem sftp internal-sftp # 设置SFTP用户的Chroot环境 Match Group sftpusers ChrootDirectory /data/sftp/%u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no ``` 此配置表示所有属于`sftpusers`组的用户将被限制在其主目录中,并且只能通过SFTP访问,无法使用SSH登录。 ### 4. 创建SFTP用户目录 创建一个专门用于管理SFTP账户的组,并为每个SFTP用户创建独立的账户目录结构: ```bash groupadd sftpusers useradd -m -g sftpusers -s /sbin/nologin sftpuser1 mkdir -p /data/sftp/sftpuser1 chown root:root /data/sftp/sftpuser1 chmod 755 /data/sftp/sftpuser1 ``` 上述命令创建了一个名为`sftpusers`的组,并为该组添加了一个用户`sftpuser1`。同时,为其分配了专属的SFTP目录`/data/sftp/sftpuser1`,并将该目录的所有权设为`root:root`,权限设置为`755`,这是SFTP服务正常运行所必需的条件之一[^4]。 ### 5. 启动并启用SSH服务 安装完成后,启动SSH服务并将其设置为开机自启: ```bash systemctl start sshd systemctl enable sshd ``` 这将确保SFTP服务随系统启动而自动运行,保障服务的持续可用性。 ### 6. 测试SFTP连接 最后,使用SFTP客户端尝试连接新配置的服务,验证是否能够成功登录并进行文件传输操作。如果遇到连接问题,请检查防火墙设置以及SFTP目录的权限配置是否符合要求[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值