總結一下:
SFTP服務
- #ssh –V 來查看openssh的版本,如果低於4.8p1,需要自行升級安裝,
- 創建sftp組:#groupadd sftp
- 創建測試賬戶:#useradd -g sftp -s /bin/false testuser 修改密碼:# passwd testuser
- 創建目錄:#mkdir /opt/sftp #cd /opt/sftp; #mkdir testuser
- 修改測試賬戶HOME路徑:# usermod -d /opt/sftp/testuser testuser
- 配置sshd_config :# vim /etc/ssh/sshd_config
- 注釋掉:Subsystem sftp /usr/libexec/openssh/sftp-server
- 添加如下幾行
- Subsystem sftp internal-sftp
- Match Group sftp
- ChrootDirectory /opt/sftp/%u
- ForceCommand internal-sftp
- AllowTcpForwarding no
- X11Forwarding no
- 設定Chroot目錄權限:chown root:sftp /opt/sftp/testuser #chmod 755 /opt/sftp/testuser 重啟sshd服務:# service sshd restart
- # mkdir /opt/sftp/testuser/upload
- # chown uplus:sftp /opt/sftp/testuser/upload
- # chmod 755 /opt/sftp/testuser/upload
- 測試 sftp mysftp@127.0.0.1 顯示 sftp> 則sftp搭建成功。
在Centos 6.6環境使用系統自帶的internal-sftp搭建SFTP服務器。
打開命令終端窗口,按以下步驟操作。
0、查看openssh的版本
ssh -V
使用ssh -V 命令來查看openssh的版本,版本必須大於4.8p1,低於的這個版本需要升級。
1、創建sftp組
2、創建一個sftp用戶,用戶名為mysftp,密碼為mysftp
修改用戶密碼和修改Linux用戶密碼是一樣的。
useradd -g sftp -s /bin/false mysftp //用戶名
passwd mysftp //密碼
useradd -g sftp -s /bin/false mysftp
passwd mysftp
3、sftp組的用戶的home目錄統一指定到/data/sftp下,按用戶名區分,這里先新建一個mysftp目錄,然后指定mysftp的home為/data/sftp/mysftp
mkdir -p /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
在文件最后面添加如下幾行內容,然后保存。
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
5、設定Chroot目錄權限
chown root:sftp /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
6、建立SFTP用戶登入后可寫入的目錄
照上面設置后,在重啟sshd服務后,用戶mysftp已經可以登錄。但使用chroot指定根目錄后,根應該是無法寫入的,所以要新建一個目錄供mysftp上傳文件。這個目錄所有者為mysftp,所有組為sftp,所有者有寫入權限,而所有組無寫入權限。命令如下:
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服務
輸入命令重啟服務。
service sshd restart
9、驗證sftp環境
用mysftp用戶名登錄,yes確定,回車輸入密碼。
sftp mysftp@127.0.0.1
顯示 sftp> 則sftp搭建成功。
10、使用FileZilla FTP Client連接SFTP服務器
輸入主機IP地址、用戶名、密碼、端口連接SFTP服務器,端口默認為22。