1. 程式人生 > 其它 >CentOS系統下SFTP的建立(sshd)

CentOS系統下SFTP的建立(sshd)

CentOS7下SFTP的建立

1、建立sftp服務資料目錄及相關使用者

mkdir -pv /data/sftp/ #sftp資料目錄

chown root:root -R /data/sftp/ #一定要是root使用者,否則無法chroot

chmod 755 -R /data/sftp/ #許可權最低需要保證普通使用者可以進入

groupadd sftp #sftp服務設定匹配組,單個使用者可以忽略

useradd -d /data/sftp/baiinfosftp -m -g sftp -s /sbin/nologin baiinfosftp

id baiinfosftp

echo "1+1=2?Yes" |passwd --stdin baiinfosftp #新增密碼

2、修改sshd服務配置檔案,以組的方式管理sftp使用者許可權

vi /etc/ssh/sshd_config #修改sftp配置檔案,修改內容如下:

登出:

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

新增:

Subsystem sftp internal-sftp #使用sftp服務使用系統自帶的internal-sftp

Match Group sftp #匹配sftp組,多個組之間用逗號分割

ChrootDirectory /data/sftp/%u #用chroot將使用者的根目錄指定到/data/sftp/%u,%u代表使用者名稱,這樣使用者就只能在/data/sftp/%u下活動

ForceCommand internal-sftp #強制執行內部sftp,並忽略任何~/.ssh/rc檔案中的命令

AllowTcpForwarding no #不允許轉發TCP協議,預設是yes,如果使用者可以shell訪問則建議為yes

X11Forwarding no #是否允許進行 X11 轉發。預設值是"no",設為"yes"表示允許。

AllowUsers baiinfosftp #需要在這裡加入允許sftp使用者遠端連線

:wq #儲存退出

3、重啟服務

systemctl restart sshd #重啟sftp服務

4、配置客戶端連線目錄許可權

cd /data/sftp/ #切換到sftp目錄

chown root:root baiinfosftp #原則使用者目錄以上的所有目錄只歸root所有

chmod 755 baiinfosftp/ #給SFTP使用者baiinfosftp賦許可權

cd baiinfosftp/ #進入使用者目錄, 建立upload

mkdir upload

chown baiinfosftp:sftp upload/ #指定upload訪問許可權歸baiinfosftp使用者