1、檢視openssh版本
ssh -v //openssh版本必須大於4.8p1
2、建立sftp組
groupadd sftp
3、建立sftp使用者
useradd -g sftp -s /sbin/nologin -m sftp
passwd sftp //設定密碼
chage -m 99999 sftp //設定密碼不過期
4、建立目錄
mkdir -p /data/sftp/mysftp
usermod -d /data/sftp/mysftp sftp
5、修改sshd_config配置
vim /etc/ssh/sshd_config
注釋掉#subsystem sftp /usr/libexec/openssh/sftp-server
後面再新增
subsystem sftp internal-sftp
match group sftp
chrootdirectory /data/sftp/mysftp
forcecommand internal-sftp
allowtcpforwarding no
x11forwarding no
6、設定chroot目錄許可權
chown root:sftp /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
7、設定可以寫入的目錄
mkdir /data/sftp/mysftp/upload
chown sftp:sftp /data/sftp/mysftp/upload
chmod 755 /data/sftp/mysftp/upload
關閉selinux:
vim /etc/selinux/config
將檔案中的selinux=enforcing修改為selinux=disabled,然後儲存。
執行:setenforce 0
8、重啟sshd服務
systemctl restart sshd.service
write failed:
broken pipe
couldn't read packet:
connection reset by peer
這個問題的原因是chrootdirectory的許可權問題,你設定的目錄必須是root使用者所有,否則就會出現問題。所以請確保sftp使用者根目錄的所有人是root
, 許可權是 750 或者 755。注意以下兩點原則:
目錄開始一直往上到系統根目錄為止的目錄擁有者都只能是 root,使用者組可以不是 root。
目錄開始一直往上到系統根目錄為止都不可以具有群組寫入許可權
上面2點一定注意,仔細檢查。
sftp服務部署
1.sftp的配置 檢視ssh版本 sftp是基於ssh協議的子協議,首先檢視ssh版本,openssh server版本至少是4.8p1,因為配置許可權需要版本新增的新配置項chrootdirectory來完成 root izys605x4c311swvscc1y0z ssh v openssh ...
sftp的安裝文件
1 安裝伺服器端 sudo apt install vsftpd 2 安裝完畢後需要啟動 sudo start vsftpd sudo vi vsftpd.conf 進入之後將write enable yes 取消注釋 儲存退出 4 更改完畢後重啟伺服器 sudo service vsftpd re...
centos 安裝sftp服務
開啟命令終端視窗,按以下步驟操作。0 檢視openssh的版本 ssh v 使用ssh v 命令來檢視openssh的版本,版本必須大於4.8p1,低於的這個版本需要公升級。1 建立sftp組 groupadd sftp 2 建立乙個sftp使用者,使用者名為mysftp,密碼為mysftp 修改使...