sftp ssh服务分离

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sftp ssh服务分离相关的知识,希望对你有一定的参考价值。

参考技术A 一、分离SSH和SFTP服务

系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd这个后台程序监听22端口,而sftp服务作为一个子服务,是通过/etc/ssh/sshd_config配置文件中的Subsystem实现的,如果没有配置Subsystem参数,则系统是不能进行sftp访问的。

1、 拷贝/usr/lib/systemd/system/目录下的sshd.service文件,放到/etc/systemd/system/目录下,命名为:sftpd.service
cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service

2、 拷贝/etc/pam.d/目录下的sshd文件,放到同目录,命名为:sftpd
cp /etc/pam.d/sshd /etc/pam.d/sftpd

3、 拷贝/etc/ssh/目录下的sshd_config文件,放到同目录,命名为:sftpd_config
cp /etc/ssh/sshd_config /etc/ssh/sftpd_config

4、 对service和rcsftpd进行软连接
ln -sf /usr/sbin/service /usr/sbin/rcsftpd

5、 对sshd和sftpd进行软连接
ln -sf /usr/sbin/sshd /usr/sbin/sftpd

6、 拷贝/etc/sysconfig/目录下的sshd文件,放到同目录,命名为:sftp
cp /etc/sysconfig/sshd /etc/sysconfig/sftp

7、 拷贝/var/run/目录下的sshd.pid文件,放到同目录,命名为:sftpd.pid
cp /var/run/sshd.pid /var/run/sftpd.pid

1、 修改/etc/systemd/system/目录下sftpd.service文件
vim /etc/systemd/system/sftpd.service

[Unit]

Description=sftpd server daemon

Documentation=man:sshd(8) man:sshd_config(5)

After=network.target sshd-keygen.service

Wants=sshd-keygen.service

[Service]

Type=notify

EnvironmentFile=/etc/sysconfig/sftp

ExecStart=/usr/sbin/sftpd -f /etc/ssh/sftpd_config

ExecReload=/bin/kill -HUP $MAINPID

KillMode=process

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-user.target

2、 修改/etc/ssh/目录下的sftpd_config文件
vim /etc/ssh/sftpd_config
具体修改如下:
Port 22 改成Port 指定端口

改成
PermitRootLogin no
就是取消该行的注释,并将yes改成no,这行参数的目的是拒绝root用户登录

改成
PidFile /var/run/sftpd.pid
就是取消该行的注释,并将sshd.pid改成sftpd.pid

Subsystem sftp /usr/libexec/openssh/sftp-server
注释

Subsystem sftp internal-sftp
Match User sftpuser
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

3、 清空/var/run/目录下的sftpd.pid文件内容

4、 添加sftp的专用账户
useradd sftpuser
passwd sftpuser
usermod -s /bin/false sftpuser

5、 禁用selinux
setenforce 0

6、 重启sftpd服务
systemctl daemon-reload
systemctl start sftpd

以上是关于sftp ssh服务分离的主要内容,如果未能解决你的问题,请参考以下文章

ssh&sftp服务分离+家目录锁定

ssh 配置文件讲解大全 ssh调试模式 sftp scp strace进行调试 特权分离

SSH服务附带----SFTP

使用带有 ssh2.sftp:// URI 的 PHP fopen 从 SFTP 服务器下载的文件为空

使用 SSH 公钥/私钥连接到 sFTP 服务器。错误 Invalid private key file. 使用 SSH.NET

ssh介绍及scp,sftp应用