linux如何搭建sftp伺服器
最近搞一個sftp專案,用於給第三方公司上傳檔案,期間查詢了很多種方式,依然無法限制目錄,很苦惱,本次經過無數次試驗,終於成功了。
提供sftp服務的有vsftpd和internal-sftp,這裡用的是系統自帶的internal-sftp,操作步驟如下:
下面是千篇一律的步驟,網上大抵相同。
1、建立使用者 sftpuser,並禁止ssh登入,不建立家目錄
useradd -s /sbin/nologin -M sftpuser
2、設定使用者密碼
passwd sftpuser
3、建立sftp根目錄,所有sftp使用者都將在該目錄下活動。(如果以後不會在新增新使用者的話,可跳過此目錄)
mkdir /sftp
4、設定目錄許可權,目錄的許可權設定有兩個要點:
目錄開始一直往上到系統根目錄為止的目錄擁有者都只能是root
目錄開始一直往上到系統根目錄為止都不可以具有群組寫入許可權
chown root:root /sftp
chmod 755 /sftp 注:該目錄許可權最大為755,設定成777會報錯,這個也是我困擾我的一個地方。
5、建立使用者sftpuser根目錄,目錄名為使用者名稱
cd /sftp
mkdir sftpuser
6、設定sftpuser目錄許可權
chown root:sftpuser /sftp/sftpuser
(注:設定使用者sftpuser,如果設定擁有者為root,表示該目錄sftpuser沒有許可權讀寫,在該目錄下建立其它目錄,賦權給sftpuser使用者讀寫許可權;
若需要對該目錄擁有讀寫許可權,設定許可權:chown sftpuser:sftpuser /home/sftp/sftpuser)
chmod 755 /sftp/sftpuser 注:這裡的目錄sftpuser 許可權也只能是755,否則無法限制目錄。
7、配置sshd_config
vi /etc/ssh/sshd_config
8、修改如下內容,並儲存退出
#註釋掉這行
#Subsystem sftp /usr/libexec/openssh/sftp-server
新增這行:
Subsystem sftp internal-sftp #指定使用sftp服務使用系統自帶的internal-sftp,如果不新增,使用者無法透過sftp登入。
#新增在配置檔案末尾
Match User sftpuser#匹配使用者,如果要匹配多個組,多個組之間用逗號分割
ChrootDirectory /sftp/%u #用chroot將指定使用者的根目錄,chroot的含義:http://www.ibm.com/developerworks/cn/linux/l-cn-chroot/;
#這裡的%u指的是賬號名,/home/sftp/%u 含義是:/sftp/sftpuser
ForceCommand internal-sftp #指定sftp命令
X11Forwarding no #這兩行,如果不希望該使用者能使用埠轉發的話就加上,否則刪掉
AllowTcpForwarding no
9、重啟sshd伺服器
systemctl restart sshd.service
#查詢sshd啟動狀態命令:
systemctl status sshd.service
10、sftpuser使用者登入測試:
sftp -oPort=22 sftpuser@127.0.0.1
至此已經完成了sftp建立使用者,並修改許可權,限制根目錄。
在使用者登入測試過程中,可能會遇到如下錯誤:
Couldn't read packet: Connection reset by peer
這是什麼原因導致的呢,當時我一直很困惑,後來發現,是目錄許可權導致了該問題,具體解決方案,回看以上4、5、6步驟!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30345407/viewspace-2711704/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SFTP服務搭建FTP
- CentOS上搭建SFTPCentOSFTP
- linux配置sftpLinuxFTP
- CentOS7系統搭建SFTP教程。CentOSFTP
- Linux中SFTP無法獲取目錄如何解決?LinuxFTP
- Linux 搭建FTP伺服器LinuxFTP伺服器
- 如何搭建屬於自己的伺服器(Linux7.6版)伺服器Linux
- Linux——搭建Samba(CIFS)伺服器LinuxSamba伺服器
- Linux——搭建Apache(httpd)伺服器LinuxApachehttpd伺服器
- Linux 上搭建 Minecraft 伺服器LinuxRaft伺服器
- Linux_CentOS-伺服器搭建LinuxCentOS伺服器
- linux(centos)搭建SVN伺服器LinuxCentOS伺服器
- linux sftp遠端連線命令LinuxFTP
- linux下FTP、SFTP命令詳解LinuxFTP
- 如何搭建遊戲伺服器呢?遊戲伺服器
- 如何搭建一臺伺服器?伺服器
- 前端人員如何在linux伺服器上搭建npm私有庫前端Linux伺服器NPM
- 恆訊科技教你如何使用Linux伺服器搭建個人網站?Linux伺服器網站
- vscode 連線遠端伺服器 sftpVSCode伺服器FTP
- sftpFTP
- Linux下搭建FTP伺服器教程LinuxFTP伺服器
- Linux篇---ftp伺服器的搭建LinuxFTP伺服器
- Linux下搭建Tomcat伺服器LinuxTomcat伺服器
- 搭建APP如何選擇伺服器APP伺服器
- 郵件伺服器如何搭建的伺服器
- 如何搭建“我的世界”伺服器伺服器
- linux雲服務搭建Minecraft伺服器LinuxRaft伺服器
- Linux伺服器下Java環境搭建Linux伺服器Java
- linux伺服器環境搭建問題Linux伺服器
- 離線Linux伺服器環境搭建Linux伺服器
- 如何搭建免費的ftp伺服器FTP伺服器
- 搭建論壇如何選擇伺服器伺服器
- 如何搭建伺服器及注意事項伺服器
- sftp命令FTP
- 一分鐘在Linux環境下建立一臺SFTP伺服器(含賬戶建立)LinuxFTP伺服器
- 保護FTP和SFTP伺服器的10個基本技巧FTP伺服器
- 錯誤:無法與 SFTP 伺服器建立 FTP 連線FTP伺服器
- linux 伺服器上 jmeter 的搭建及使用Linux伺服器JMeter