ssh和sftp分离
复制相关文件
cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service
cp /etc/pam.d/sshd /etc/pam.d/sftpd
cp /etc/ssh/sshd_config /etc/ssh/sftpd_config
ln -sf /usr/sbin/service /usr/sbin/rcsftpd
ln -sf /usr/sbin/sshd /usr/sbin/sftpd
cp /etc/sysconfig/sshd /etc/sysconfig/sftp
cp /var/run/sshd.pid /var/run/sftpd.pid
修改新服务的配置
修改/etc/systemd/system/sftpd.service
以下是修改后的代码:
vim /etc/systemd/system/sftpd.service
#第2行
Description=Sftp server daemon
#第10行,第11行
EnvironmentFile=-/etc/sysconfig/sftpd
ExecStart=/usr/sbin/sftpd -f /etc/ssh/sftpd_config
修改vim /etc/ssh/sftpd_config
以下是修改后的代码:
vim /etc/ssh/sftpd_config
#第17行
Port 9999
#第125行
PidFile /var/run/sftpd.pid
#第141行,注释掉这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
#最后添加下面这几行
Subsystem sftp internal-sftp
Match User sftpuser
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
清空/var/run/sftpd.pid文件
#注意前面的>也是一起的,不是提示
> /var/run/sftpd.pid
新增账号并开启服务
#新增账号
useradd sftpuser
#修改密码
passwd sftpuser
#设置禁止ssh登陆
usermod -s /bin/false sftpuser
#修改家目录和权限设置什么的,就省略了
#reload daemon
systemctl daemon-reload
#开启sftp服务
systemctl start sftpd
#要是有报错,不要着急,看看报错信息
#不要用systemctl status sftp.service,报错信息不明确
#用下面这个会提示具体信息
journalctl -xe
#要还是搞不定,就百度吧。。
测试
#22端口
sftp sftpuser@localhost
#9999端口
sftp -oPort=9999 sftpuser@localhost