SFTP服務搭建與傳輸文件(Centos6)

1.創建通信賬號

添加sftp組

groupadd sftp

新增用戶

新增用戶liuxing至sftp組,禁止登錄

useradd -g sftp -s /bin/false liuxing

設置密碼

設置用戶liuxing的密碼

passwd liuxing

創建登陸默認訪問路徑

 mkdir -p /appdata/BJIP-JAVA/histmp/
 usermod -d /appdata/BJIP-JAVA/histmp/ liuxing

配置目錄權限

chmod -R 755 /appdata/BJIP-JAVA/histmp/
chown liuxing:sftp /appdata/BJIP-JAVA/histmp/

修改sftp配置

用ChrootDirectory將用戶的根目錄指定到/appdata/BJIP-JAVA/histmp/ ,這樣用戶就只能在/appdata/BJIP-JAVA/histmp/下活動。

如果你鏈接服務器的時候出現下面的提示:

Write failed: Broken pipe 
Couldn't read packet: Connection reset by peer 

這個問題的原因是ChrootDirectory的權限問題,你設定的目錄必須是root用戶所有,否則就會出現問題。所以請確保sftp用戶根目錄的所有人是root, 權限是 750 或者 755。
所以下面配置沒有指定根目錄

#Subsystem      sftp    /usr/libexec/openssh/sftp-server  這行註釋掉
Subsystem sftp internal-sftp    #這行指定使用sftp服務使用系統自帶的internal-sftp
Match User liuxing    #這行用來匹配用戶
#ChrootDirectory /appdata/BJIP-JAVA/histmp/  
ChrootDirectory none  #不指定活動目錄
AllowTcpForwarding no
ForceCommand internal-sftp    #指定sftp命令

重啓sshd服務

service sshd restart

2.從其他服務器上傳文件

登陸服務器10.196.32.13建立文件夾/usr/test111,並上傳至10.196.32.21默認路徑(-d爲debug模式)
/appdata/BJIP-JAVA/histmp/

用法:lftp 用戶名:密碼@ftp地址:傳送端口(默認21)
#此處命令在服務器10.196.32.13執行
mkdir /usr/test111
lftp "sftp://liuxing:[email protected]" -e "PUT /usr/test111" -d

查看10.196.32.21是否有test111文件夾

使用shell上傳

#/bin/bash
if [ -f ~/.bash_profile ];
then
  . ~/.bash_profile
fi
#scp output/* [email protected]:/home/ebp/fil/tmp
#scp output/* [email protected]:/appdata/BJIP-JAVA/histmp
FTP_ADDR=10.196.32.21
FTP_USER=liuxing
FTP_PASS=lxinfohold
FILE_ROOT_PATH=/usr/TicketEBPdata/
FILE_PATH=/usr/TicketEBPdata/output/
LOG_FILE=/usr/TicketEBPdata/output/lftp_output.txt

ftpFunction() {
        lftp "sftp://$FTP_USER:$FTP_PASS@$FTP_ADDR" -e "PUT $FILE_PATH$1" >$LOG_FILE 2>&1 <<- EOF
bye
EOF
}
filelist=`ls $FILE_PATH`
for file in $filelist
do
  if [ -f "$FILE_PATH""$file" ];then
echo $file;   
        ftpFunction $file

	if [ -s "$LOG_FILE" ]; then
           mv $LOG_FILE $FILE_ROOT_PATH
           break
        else
        rm -rf $LOG_FILE
        mv output/* history -f 
        fi
  fi
done

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章