在Centos 6.6環(huán)境使用系統(tǒng)自帶的internal-sftp搭建SFTP服務(wù)器。
打開命令終端窗口,按以下步驟操作。
0、查看openssh的版本
ssh -V
使用ssh -V 命令來查看openssh的版本,版本必須大于4.8p1,低于的這個版本需要升級。
1、創(chuàng)建sftp組
groupadd sftp
2、創(chuàng)建一個sftp用戶,用戶名為mysftp,密碼為mysftp
修改用戶密碼和修改Linux用戶密碼是一樣的:
注意:這里我們將mysftp用戶的shell設(shè)置為/bin/false使他沒有登陸shell的權(quán)限
useradd -g sftp -s /bin/false mysftp//用戶名
passwd mysftp//密碼
useradd -g sftp -s /bin/false mysftp
passwd mysftp
3、sftp組的用戶的home目錄統(tǒng)一指定到/data/sftp下,按用戶名區(qū)分,這里先新建一個mysftp目錄,然后指定mysftp的home為/data/sftp/mysftp
sftp組的用戶的home目錄統(tǒng)一指定到/data/sftp下
mkdir -p /data/sftp/mysftp
然后指定andy的home為/data/sftp/mysftp
usermod -d /data/sftp/mysftp mysftp
4、配置sshd_config
文本編輯器打開 /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
找到如下這行,用#符號注釋掉,大致在文件末尾處。
# Subsystem sftp /usr/libexec/openssh/sftp-server
在文件最后面添加如下幾行內(nèi)容,然后保存。
Subsystem sftp internal-sftp
Match Group sftp
匹配sftp組的用戶,如果有多個組用逗號分割 也可以使用“Match User mysftp”匹配用戶,多個用戶之間也是用逗號分割
ChrootDirectory /data/sftp/%u
用chroot將用戶的根目錄指定到/data/ftp/%u,%u代表用戶名,%h表示用戶根目錄
ForceCommand internal-sftp
指定sftp命令
AllowTcpForwarding no
X11Forwarding no
禁止用戶使用端口轉(zhuǎn)發(fā) 建立用戶和組放
5、設(shè)定Chroot目錄權(quán)限
chown root:sftp /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
6、建立SFTP用戶登入后可寫入的目錄
照上面設(shè)置后,在重啟sshd服務(wù)后,用戶mysftp已經(jīng)可以登錄。但使用chroot指定根目錄后,根應(yīng)該是無法寫入的,所以要新建一個目錄供mysftp上傳文件。這個目錄所有者為mysftp,所有組為sftp,所有者有寫入權(quán)限,而所有組無寫入權(quán)限。命令如下:
mkdir /data/sftp/mysftp/upload
chown mysftp:sftp /data/sftp/mysftp/upload
chmod 755 /data/sftp/mysftp/upload
7、修改/etc/selinux/config
文本編輯器打開/etc/selinux/config
vi /etc/selinux/config
將文件中的SELINUX=enforcing 修改為 SELINUX=disabled ,然后保存。
在輸入命令
setenforce 0
8、重啟sshd服務(wù)
輸入命令重啟服務(wù)。
service sshd restart
9、驗證sftp環(huán)境
用mysftp用戶名登錄,yes確定,回車輸入密碼。
sftp mysftp@127.0.0.1
顯示 sftp> 則sftp搭建成功。
10、使用FileZilla FTP Client連接SFTP服務(wù)器
輸入主機IP地址、用戶名、密碼、端口連接SFTP服務(wù)器,端口默認為22。