SFTP服務(wù)搭建與安裝

SFTP搭建與安裝


1.SFTP簡(jiǎn)介

? ? ? ? sftp是ssh的一部分,sftp沒有單獨(dú)的守護(hù)進(jìn)程,其必須使用sshd守護(hù)進(jìn)程(默認(rèn)端口為22)進(jìn)行相應(yīng)的連接操作。

2.分離SSH和SFTP服務(wù)

? ? ? ?系統(tǒng)內(nèi)開啟ssh服務(wù)和sftp服務(wù)都是通過/usr/sbin/sshd這個(gè)后臺(tái)程序監(jiān)聽22端口,而sftp服務(wù)作為一個(gè)子服務(wù),是通過/etc/ssh/sshd_config配置文件中的Subsystem實(shí)現(xiàn)的,如果沒有配置Subsystem參數(shù),則系統(tǒng)是不能進(jìn)行sftp訪問。

1.復(fù)制ssh文件重名為sftp的文件

#復(fù)制/usr/lib/systemd/system/sshd.service為/etc/systemd/system/sftpd.service

[root@lv ~]# cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service

#復(fù)制/etc/pam.d/sshd為/etc/pam.d/sftpd

[root@lv ~]# cp /etc/pam.d/sshd /etc/pam.d/sftpd

#復(fù)制/etc/ssh/sshd_config為/etc/ssh/sshd_config

[root@lv ~]# cp /etc/ssh/sshd_config /etc/ssh/sftpd_config

#將sshd與sftpd創(chuàng)建軟鏈接

[root@lv ~]# ln -sf /usr/sbin/sshd /usr/sbin/sftpd

#復(fù)制/etc/sysconfig/sshd為/etc/sysconfig/sftp

[root@lv ~]# cp /etc/sysconfig/sshd /etc/sysconfig/sftp

#復(fù)制/var/run/sshd.pid為/var/run/sftpd.pid,并清空/var/run/sftpd.pid

[root@lv ~]# cp /var/run/sshd.pid /var/run/sftpd.pid[root@lv?~]#?>?/var/run/sftpd.pid

2.修改配置文件

vim /etc/systemd/system/sftpd.service

#刪除sftpd.service內(nèi)容并添加如下內(nèi)容[Unit]Description=sftpd server daemonDocumentation=man:sshd(8) man:sshd_config(5)

After=network.target

sshd-keygen.serviceWants=sshd-keygen.service

[Service]

Type=notifyEnvironmentFile=/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

3.修改sftp配置文件

vim /etc/ssh/sftpd_config

修改Port:Port 22

修改PidFile:PidFile /var/run/sftpd.pid

#注釋

#Subsystem sftp /usr/libexec/openssh/sftp-server

#文件末尾添加如下內(nèi)容

Subsystem sftp internal-sftp

Match Group sftp

ForceCommand internal-sftp

AllowTcpForwarding no

#配置解釋:

Subsystem sftp internal-sftp? ? ?????????????#指定使用sftp服務(wù)使用系統(tǒng)自帶的

internal-sftpMatch Group sftpusers? ? ?#匹配sftp組的用戶,若要匹配多個(gè)組,可用逗號(hào)分開X11Forwarding no? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#禁止用戶使用端口轉(zhuǎn)發(fā)

AllowTcpForwarding no ???????????????????? #禁止用戶使用端口轉(zhuǎn)發(fā)

ForceCommand internal-sftp ???????????? #只能用于sftp登錄

ChrootDirectory /home/sftp???????????????? #限制用戶的根目錄

4.創(chuàng)建用戶與目錄

#使用root用戶創(chuàng)建用戶組,組名為sftp;創(chuàng)建sftp用戶,用戶名為sftp,并設(shè)置密碼groupadd?sftp

useradd?-g?sftp?-s?/sbin/nologin sftp

passwd?sftp

#使用root用戶新建目錄/data,將其設(shè)置為sftp的home目錄,并指定目錄權(quán)限

mkdir -p /data

usermod?-d?/data?sftp

#設(shè)置Chroot目錄權(quán)限

chown root:resftp /data

chmod 755 /data

#設(shè)置sftp用戶可以操作的目錄

mkdir?-p?/data/sftp/home

chown?sftp:sftp?/data/sftp/home

chmod 755 /data/sftp/home

5.啟動(dòng)

#使修改的sshd配置生效

systemctl daemon-reload

#啟動(dòng)

sftpsystemctl start sftpd????????????????????????????????#啟動(dòng)sftp

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容