1、查看openssh的版本
ssh -v
使用ssh -v 命令來查看openssh的版本,版本必須大于4.8p1,低于的這個(gè)版本需要升級(jí)。
如果提示-bash: ssh: command not found,則需自行安裝openssh客戶端,安裝命令如下
yum -y install openssh-clients
2、創(chuàng)建sftp組
groupadd sftp
在執(zhí)行groupadd xxx時(shí)有可能報(bào)錯(cuò):
groupadd : cannot open /etc/xxx
解決方法:
chattr -i /etc/group
chattr -i /etc/gshadow
3、創(chuàng)建一個(gè)sftp用戶,用戶名為mysftp,密碼為mysftp
修改用戶密碼和修改Linux用戶密碼是一樣的。
useradd -g sftp -s /bin/false mysftp #創(chuàng)建mysftp用戶
passwd mysftp #設(shè)置mysftp用戶的密碼
如報(bào)下面的錯(cuò):
useradd : cannot open /etc/xxx
解決方法:
chattr -i /etc/passwd
chattr -i /etc/shadow
4、為sftp組用戶設(shè)置統(tǒng)一home目錄
sftp組的用戶的home目錄統(tǒng)一指定到/data/sftp下,按用戶名區(qū)分,這里先新建一個(gè)mysftp目錄,然后指定mysftp的home為/data/sftp/mysftp
mkdir -p /data/sftp/mysftp
usermod -d /data/sftp/mysftp mysftp
5、配置sshd_config
文本編輯器打開 /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
找到如下這行,用#符號(hào)注釋掉,應(yīng)該是在132行。(按esc,輸入:set nu顯示行號(hào))
#Subsystem sftp /usr/libexec/openssh/sftp-server
在文件最后面添加如下幾行內(nèi)容,然后保存。
Subsystem sftp internal-sftp #使用sftp服務(wù)使用系統(tǒng)自帶的internal-sftp
Match Group sftp #匹配sftp組的用戶,如果要匹配多個(gè)組,多個(gè)組之間用逗號(hào)分割
ChrootDirectory /data/sftp/%u #用chroot將用戶的根目錄指定到/data/sftp/%u,%u代表用戶名,這樣用戶就只能在/data/sftp/%u下活動(dòng)
ForceCommand internal-sftp #指定sftp命令
AllowTcpForwarding no
X11Forwarding no
6、設(shè)定Chroot目錄權(quán)限
chown root:sftp /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
7、建立SFTP用戶登入后可寫入的目錄
照上面設(shè)置后,在重啟sshd服務(wù)后,用戶mysftp已經(jīng)可以登錄。但使用chroot指定根目錄后,根應(yīng)該是無法寫入的,所以要新建一個(gè)目錄供mysftp上傳文件。這個(gè)目錄所有者為mysftp,所有組為sftp,所有者有寫入權(quán)限,而所有組無寫入權(quán)限。命令如下:
mkdir /data/sftp/mysftp/upload
chown mysftp:sftp /data/sftp/mysftp/upload
chmod 755 /data/sftp/mysftp/upload
8、修改/etc/selinux/config
文本編輯器打開/etc/selinux/config
vi /etc/selinux/config
將文件中的 SELINUX=enforcing 修改為 SELINUX=disabled ,然后保存。
再輸入命令
setenforce 0
9、重啟sshd服務(wù)
輸入命令重啟服務(wù)
service sshd restart
10、驗(yàn)證sftp環(huán)境
用mysftp用戶名登錄,yes確定,回車輸入密碼。
sftp mysftp@127.0.0.1
顯示 sftp> 則sftp搭建成功。
注意:sftp服務(wù)的根目錄的所有者必須是root,權(quán)限不能超過755(上級(jí)目錄也必須遵循此規(guī)則),sftp的用戶目錄所有者也必須是root,且最高權(quán)限不能超過755。**