轉自:http://blog.csdn.net/superswordsman/article/details/49331539服務器
最近工做須要用到sftp服務器,被網上各類方法尤爲是權限設置問題搞得暈頭轉向,如今將本身搭建過程總結了一下,整理出來一種最簡單的方法可供你們參考。app
第1歩,添加sftp用戶並制定根目錄:useradd -d /home/sftp -s /sbin/nologin sftpuserssh
第2歩,修改密碼:執行passwd sftpuser,而後輸入密碼2次便可.net
第3歩,修改配置文件,執行vi /etc/ssh/sshd_config ,在裏面添加以下信息:rest
Subsystem sftp internal-sftpblog
Match User sftpuser
#X11Forwarding no
#AllowTcpForwarding no
#ForceCommand internal-sftpdns
第4歩,設置根目錄的訪問權限:chmod 777 /home/sftp(可選)進程
第5歩,重啓sshd進程,使配置生效:service sshd restartget
至此,sftp服務器就搭建好了,使用命令sftp sftpuser@10.1.1.100登錄一下,登錄成功說明搭建成功。io
注:若是在配置文件裏面增長了ChrootDirectory /home/sftp ,那麼根目錄的擁有者和屬組必須是root,此時目錄權限應這樣設置:
chown root:root /home/sftp
chmod 755 /home/sftp
此時只有用戶root對/home/sftp目錄有寫入權限,而使用sftpuser這個用戶登錄後是沒有寫入權限的,故須要在/home/sftp/目錄下再新建一個文件夾,並賦予sftpuser讀寫權限,這樣才能完成sftp操做。
因而可知,在配置文件中增長了ChrootDirectory後,須要特別注意權限問題。
常見問題:
一、sftp登陸時報錯:
Connecting to 10.66.2.111...
/etc/ssh/ssh_config: line 60: Bad configuration option: UseDNS
/etc/ssh/ssh_config: terminating, 1 bad configuration options
Couldn't read packet: Connection reset by peer
該問題是由dns解析致使,在客戶端的配置文件/etc/ssh/ssh_config中查看是否有UseDNS no,若是有,註釋掉該行。
二、sftp鏈接時特別慢,並且警告:reverse mapping checking getaddrinfo for bogon [10.91.0.227] failed - POSSIBLE BREAK-IN ATTEMPT!
可能緣由:在sftp服務器上找到配置文件/etc/ssh/sshd_config,將GSSAPIAuthentication yes 改成GSSAPIAuthentication no。