Linux(CentOS)上配置 SFTP服務(wù)器
相比傳統(tǒng)的 ftp 服務(wù),SFTP 顯得更加方便、安全,一般系統(tǒng)安裝了 ssh 后,默認(rèn)就安裝了這個服務(wù),我們只要簡單的配置一下就可以了。
但是 SFTP 賬號是基于 SSH 賬號的(也就是系統(tǒng)賬戶),默認(rèn)情況下訪問服務(wù)器的權(quán)限很大,下面的教程就是教你像 ftp 那樣限制 SFTP 賬號相關(guān)的訪問權(quán)限。
必要條件:
你的 openssh-server 版本至少得 4.8p1, 因?yàn)榕渲脵?quán)限需要版本添加的新配置項(xiàng) ChrootDirectory 來完成。
如何查看自己服務(wù)器上的ssh版本?嘗試以下命令
$ ssh -V
具體實(shí)施步驟
我們需要創(chuàng)建一個用戶組,專門用于sftp用戶
$ groupadd sftpusers
我們創(chuàng)建一個用戶test
$ useradd -s /bin/false -G sftpusers test
注意這里我們將test用戶的shell設(shè)置為/bin/false使他沒有登陸shell的權(quán)限
編輯 /etc/ssh/sshd_config
找到Subsystem這個配置項(xiàng),將其修改為
Subsystem sftp internal-sftp
為什么實(shí)用 internal-sftp 而不用默認(rèn)的 sftp-server,這是因?yàn)椋?/p>
這是一個進(jìn)程內(nèi)的 sftp 服務(wù),當(dāng)用戶 ChrootDirectory 的時候,將不請求任何文件;
更好的性能,不用為 sftp 再開一個進(jìn)程。
然后再到文件最尾處增加配置設(shè)定屬于用戶組sftpusers的用戶都只能訪問他們自己的home文件夾
# 匹配用戶組,如果要匹配多個組,多個組之間用逗號分割 Match Group sftpusers # 指定登陸用戶到自己的用戶目錄 ChrootDirectory %h # 指定 sftp 命令 ForceCommand internal-sftp # 這兩行,如果不希望該用戶能使用端口轉(zhuǎn)發(fā)的話就加上,否則刪掉 X11Forwarding no AllowTcpForwarding no
保存并關(guān)閉文件
修改test用戶home文件夾的權(quán)限,讓其屬于root用戶
chown root ~test
重啟sshd服務(wù)
$ service sshd restart # 或 $ systemctl restart sshd
測試用戶賬號
$ ssh test@localhost
連接會被拒絕或者無法登陸
$ sftp tesst@localhost
登陸后你會發(fā)現(xiàn)你的賬號無法切換到除自己home目錄之外的地方的
常見問題:
如果你鏈接服務(wù)器的時候出現(xiàn)下面的提示:
> Write failed: Broken pipe > Couldn't read packet: Connection reset by peer
這個問題的原因是ChrootDirectory的權(quán)限問題,你設(shè)定的目錄必須是root用戶所有,否則就會出現(xiàn)問題。所以請確保sftp用戶根目錄的所有人是root, 權(quán)限是 750 或者 755。注意以下兩點(diǎn)原則:
- 目錄開始一直往上到系統(tǒng)根目錄為止的目錄擁有者都只能是 root,用戶組可以不是 root。
- 目錄開始一直往上到系統(tǒng)根目錄為止都不可以具有群組寫入權(quán)限
配置sublime text3 的 sftp 插件
實(shí)用 st3 的包工具搜索安裝 sftp,具體可以參加下面的文章:
sublime text3 安裝、配置sftp插件
"upload_on_save": true, "sync_down_on_open": true, "host": "xxx.com", "user": "xxx", "password": "xxx", "port": "22", "remote_path": "/xxx/xxx",
sftp 的 remote_path 和 ftp 不同,ftp 值得是遠(yuǎn)程能看到的目錄和子目錄,sftp 指的是遠(yuǎn)程服務(wù)器上的目錄路徑如 /home/html。
設(shè)置 upload_on_save 為 true,將在你保存的時候自動上傳到服務(wù)器。
設(shè)置 sync_down_on_open 為 true,將在你打開本地文件編輯的時候,自動下載遠(yuǎn)程文件來更新本地。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
查看Linux內(nèi)存條數(shù)與清理內(nèi)存的命令方法
下面小編就為大家?guī)硪黄榭碙inux內(nèi)存條數(shù)與清理內(nèi)存的命令方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
Linux查看系統(tǒng)文件打開數(shù)的方法小結(jié)
有許多情況下,我們需要查看一個進(jìn)程當(dāng)前打開了哪些文件,反過來我們也希望知道某一個文件正在被哪些進(jìn)程所讀寫,在Linux下有許多有用的工具可以幫我們完成這兩個工作,本文給大家介紹了Linux查看系統(tǒng)文件打開數(shù)的方法小結(jié),需要的朋友可以參考下2024-07-07
Linux下查看CPU型號,內(nèi)存大小,硬盤空間的命令(詳解)
下面小編就為大家?guī)硪黄狶inux下查看CPU型號,內(nèi)存大小,硬盤空間的命令(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
Ubuntu下Sublime Text無法輸入中文最簡單的解決方案
今天小編就為大家分享一篇關(guān)于Ubuntu下Sublime Text無法輸入中文最簡單的解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
Linux系統(tǒng)下virtuoso數(shù)據(jù)庫安裝與使用詳解
這篇文章主要介紹了Linux系統(tǒng)下virtuoso數(shù)據(jù)庫安裝與使用 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11
LINUX中關(guān)于mkdir命令語法和實(shí)例解讀
Linux系統(tǒng)中,mkdir命令用于創(chuàng)建新的目錄,支持多種選項(xiàng)如權(quán)限設(shè)置、遞歸創(chuàng)建等,對于新手和管理員都非常有用,命令的靈活性可以通過各種選項(xiàng)來實(shí)現(xiàn)不同的功能,包括設(shè)置權(quán)限、創(chuàng)建多級嵌套目錄和處理隱藏目錄等,掌握mkdir命令對于提高Linux操作效率和管理文件系統(tǒng)至關(guān)重要2024-10-10
在Linux中查找命令的執(zhí)行時間的幾種方法小結(jié)
在Linux系統(tǒng)中,了解命令的執(zhí)行時間對于優(yōu)化系統(tǒng)性能和提高效率至關(guān)重要,本文將介紹幾種方法來查找命令的執(zhí)行時間,包括內(nèi)置的time命令、GNU time工具、strace以及perf工具,需要的朋友可以參考下2024-05-05

