1. 程式人生 > 實用技巧 >CentOS 8 搭建sftp伺服器

CentOS 8 搭建sftp伺服器

先切換到root使用者,下文中使用sftp作為組使用者,sftpvdes作為賬戶使用。

因為需要用到chroot,所以openssh 版本不能低於4.8p1

ssh -V

建立使用者分組sftp

groupadd sftp

新增使用者sftpvdes至組使用者sftp

useradd -g sftp -s /sbin/nologin sftpvdes

注:-g後面接組;-s指定使用者登入後所使用的shell,預設值為/bin/bash。

【/bin/bash】指:使用者即能使用賬號密碼連線sftp,又能使用賬號密碼登入該Linux伺服器;

【/sbin/nologin】指:使用者只能使用賬號密碼連線sftp,不能使用賬號密碼登入該Linux伺服器;對於FTP、SFTP、SMTP等程式級服務,我們一般都設定為【/sbin/nologin】。

修改sftpvdes使用者的密碼

passwd sftpvdes

本次設定密碼 1qazxsw2

建立一個目錄,來專門存放sftp相關檔案

先cd到根目錄

cd /

建立 sftp 資料夾

mkdir /sftp

然後為了規範一下,在針對每個賬戶建立一個資料夾,

上面我們建立了sftpvdes使用者,再次建立一個sftpvdes資料夾

cd /sftp/
mkdir sftpvdes
cd sftpvdes

此時我們就處在了sftpvdes 這個資料夾位置,這個資料夾可以用來存放想要上傳的檔案,比如在建立一個file檔案家,來存放檔案,或者jpg資料夾來存放圖片

mkdir files

修改sshd_config的配置檔案

vi /etc/ssh/sshd_config

註釋掉原文件下面語句

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

在文件最下邊新增

Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

注:上面的Match Group 後面的sftp需要匹配一開始建的分組名

注:上面的ChrootDirectory 後面的sftp需要匹配建立的資料夾名

設定Chroot目錄許可權

chown -R root:sftp /sftp
chmod 755 /sftp
chmod 755 /sftp/sftpvdes
chmod 777 /sftp/sftpvdes/files

重啟sshd配置

service sshd restart

測試連結

連線成功