相比傳統(tǒng)的 ftp 服務(wù),SFTP 顯得更加方便、安全,一般系統(tǒng)安裝了 ssh 后,默認(rèn)就安裝了這個(gè)服務(wù),我們只要簡(jiǎn)單的配置一下就可以了。
但是 SFTP 賬號(hào)是基于 SSH 賬號(hào)的(也就是系統(tǒng)賬戶),默認(rèn)情況下訪問(wèn)服務(wù)器的權(quán)限很大,下面的教程就是教你像 ftp 那樣限制 SFTP 賬號(hào)相關(guān)的訪問(wèn)權(quán)限。
必要條件:
你的 openssh-server 版本至少得 4.8p1, 因?yàn)榕渲脵?quán)限需要版本添加的新配置項(xiàng) ChrootDirectory 來(lái)完成。
如何查看自己服務(wù)器上的ssh版本?嘗試以下命令
$ ssh -V
具體實(shí)施步驟
我們需要?jiǎng)?chuàng)建一個(gè)用戶組,專門用于sftp用戶
$ groupadd sftpusers
我們創(chuàng)建一個(gè)用戶test
$ useradd -s /bin/false -G sftpusers test
注意這里我們將test用戶的shell設(shè)置為/bin/false使他沒(méi)有登陸shell的權(quán)限
編輯 /etc/ssh/sshd_config
找到Subsystem這個(gè)配置項(xiàng),將其修改為
Subsystem sftp internal-sftp
為什么實(shí)用 internal-sftp 而不用默認(rèn)的 sftp-server,這是因?yàn)椋?/p>
這是一個(gè)進(jìn)程內(nèi)的 sftp 服務(wù),當(dāng)用戶 ChrootDirectory 的時(shí)候,將不請(qǐng)求任何文件;
更好的性能,不用為 sftp 再開一個(gè)進(jìn)程。
然后再到文件最尾處增加配置設(shè)定屬于用戶組sftpusers的用戶都只能訪問(wèn)他們自己的home文件夾
# 匹配用戶組,如果要匹配多個(gè)組,多個(gè)組之間用逗號(hào)分割Match Group sftpusers# 指定登陸用戶到自己的用戶目錄ChrootDirectory %h# 指定 sftp 命令ForceCommand internal-sftp# 這兩行,如果不希望該用戶能使用端口轉(zhuǎn)發(fā)的話就加上,否則刪掉X11Forwarding noAllowTcpForwarding no
保存并關(guān)閉文件
修改test用戶home文件夾的權(quán)限,讓其屬于root用戶
chown root ~test
重啟sshd服務(wù)
$ service sshd restart# 或$ systemctl restart sshd
測(cè)試用戶賬號(hào)
$ ssh test@localhost
連接會(huì)被拒絕或者無(wú)法登陸
$ sftp tesst@localhost
登陸后你會(huì)發(fā)現(xiàn)你的賬號(hào)無(wú)法切換到除自己home目錄之外的地方的
常見(jiàn)問(wèn)題:
如果你鏈接服務(wù)器的時(shí)候出現(xiàn)下面的提示:
> Write failed: Broken pipe > Couldn't read packet: Connection reset by peer
這個(gè)問(wèn)題的原因是ChrootDirectory的權(quán)限問(wèn)題,你設(shè)定的目錄必須是root用戶所有,否則就會(huì)出現(xiàn)問(wèn)題。所以請(qǐng)確保sftp用戶根目錄的所有人是root, 權(quán)限是 750 或者 755。注意以下兩點(diǎn)原則:
目錄開始一直往上到系統(tǒng)根目錄為止的目錄擁有者都只能是 root,用戶組可以不是 root。配置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。
新聞熱點(diǎn)
疑難解答
圖片精選