SFTP採用的是ssh加密隧道,安裝性方面較FTP強,並且依賴的是系統自帶的ssh服務html
FTP還須要額外的進行安裝FTP服務linux
SFTP搭建流程:服務器
一、建立SFTP組ssh
$groupadd sftp
建立完成以後使用cat /etc/group命令組的信息測試
$cat /etc/group
二、建立一個sftp用戶mysftp並加入到建立的sftp組中,同時修改mysftp用戶的密碼加密
$useradd -g sftp -s /bin/false mysftp $passwd mysftp
三、新建/data/sftp/mysftp目錄,並將它指定爲mysftp組用戶的home目錄3d
$mkdir -p /data/sftp/mysftp $usermod -d /data/sftp/mysftp mysftp #修改mysftp用戶的home目錄爲/data/sftp/mysftp
四、編輯配置文件/etc/ssh/sshd_configrest
$vi /etc/ssh/sshd_config
將以下這行用#符號註釋掉code
# Subsystem sftp /usr/libexec/openssh/sftp-server orm
並在文件最後面添加以下幾行內容而後保存
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
五、設置目錄權限
$chown root:sftp /data/sftp/mysftp $chmod 755 /data/sftp/mysftp
六、新建一個目錄供sftp用戶mysftp上傳文件,這個目錄全部者爲mysftp全部組爲sftp,全部者有寫入權限全部組無寫入權限
$mkdir /data/sftp/mysftp/upload $chown mysftp:sftp /data/sftp/mysftp/upload $chmod 755 /data/sftp/mysftp/upload
七、關閉selinux並重啓sshd服務,而後測試
#關閉selinux $setenforce 0 setenforce:SELinux is disabled #重啓sshd服務 $systemctl restart sshd.service
在其餘服務器上進行驗證,sftp 用戶名@ip地址
注意:openssh的版本必須大於4.8p1
--------------------------------------------------
PHPSTORM設置同步SFTP
--------------------------------------------------
一、File->Create New Project form Existing Files,選擇第4個,files are accessible via FTP/SFTP/FTPS,Next
二、Project local path 選擇本地項目的地址,Project name 須要與本地目錄同名,Next
三、遠程服務器地址10.17.11.251,填寫我的帳戶密碼後,能夠點擊Test Connection測試鏈接是否正常。記得勾選下方的Don't check HTTP connection to server,Next
四、選擇遠程服務器目標項目根目錄,選擇後點擊上方的Project Root,如目錄不存在,聯繫管理員建立。Next
五、finish
六、遠程SFTP鏈接已經建立完成。
同步項目時,選擇目標目錄或者文件,右鍵->Deployment->Upload to...,選擇對應的遠程服務器。也可以使用快捷鍵Ctrl+Alt+Shift+X
勾選Tools->Deployment->Automatic Upload,每次本地修改保存後會自動同步遠程服務器。