先切換到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
測試鏈接
連接成功