當(dāng)前位置:
首頁(yè) >
Ubuntu Server如何配置SFTP
發(fā)布時(shí)間:2024/4/14
37
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Ubuntu Server如何配置SFTP
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
SSH File Transfer Protocol是一個(gè)比普通FTP更為安全的文件傳輸協(xié)議。(參考資料:http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol)它工作在Secure Shell(SSH)上,確保文件被加密傳輸。
因?yàn)楣ぷ餍枰?#xff0c;我研究了一下如何在Ubuntu Server上配置SFTP,記錄如下。
需求:在服務(wù)器上開(kāi)通SFTP文件服務(wù),允許某些用戶上傳及下載文件。但是這些用戶只能使用SFTP傳輸文件,不能使用SSH終端訪問(wèn)服務(wù)器,并且SFTP不能訪問(wèn)系統(tǒng)文件(即所謂的“Jail(監(jiān)獄)”)。系統(tǒng)管理員則既能使用SFTP傳輸文件,也能使用SSH遠(yuǎn)程管理服務(wù)器。
為了便于討論,我假設(shè)我將允許sftp-users用戶組內(nèi)的用戶使用SFTP,但不允許使用SSH Shell,且該組用戶將被"監(jiān)獄"(修改系統(tǒng)根目錄)。我將在sftp-users組內(nèi)創(chuàng)建一個(gè)用戶“alice”。而我將允許ssh-users使用SFTP以及SSH。系統(tǒng)管理員的賬戶名為admin。
第01步,如果還沒(méi)有安裝OpenSSH服務(wù)器,先安裝它。
sudo apt-get install openssh-server
第02步,為SFTP訪問(wèn)創(chuàng)建用戶組,便于管理權(quán)限。
sudo addgroup sftp-users
第03步,創(chuàng)建SFTP用戶,并配置相應(yīng)權(quán)限。這里第二行的意思是將alice從所有其他用戶組中移除并加入到sftp-users組,并且關(guān)閉其Shell訪問(wèn)。如果想深入了解usermod命令,可以使用以下"man usermod"命令查看幫助文檔。
sudo adduser alice
sudo usermod -G sftp-users -s /bin/false alice
第04步,創(chuàng)建SSH用戶組,并把管理員加入到該組(注意usermod中的-a參數(shù)的意思是不從其他用戶組用移除)。
sudo addgroup ssh-users
sudo usermod -a -G ssh-users admin
第05步,準(zhǔn)備“監(jiān)獄”的根目錄及共享目錄。這里解釋一下,“監(jiān)獄”的根目錄必須滿足以下要求:所有者為root,其他任何用戶都不能擁有寫(xiě)入權(quán)限。因此,為了讓SFTP用戶能夠上傳文件,還必須在“監(jiān)獄”根目錄下再創(chuàng)建一個(gè)普通用戶能夠?qū)懭氲墓蚕砦募夸洝榱吮阌诠芾韱T通過(guò)SFTP管理上傳的文件,我把這個(gè)共享文件目錄配置為:由admin所有,允許sftp-users讀寫(xiě)。這樣,管理員和SFTP用戶組成員就都能讀寫(xiě)這個(gè)目錄了。
sudo mkdir /home/sftp_root
sudo mkdir /home/sftp_root/shared
sudo chown admin:sftp-users /home/sftp_root/shared
sudo chmod 770 /home/sftp_root/shared
第06步,修改SSH配置文件。
sudo nano /etc/ssh/sshd_config
在sshd_config文件的最后,添加以下內(nèi)容:
AllowGroups ssh-users sftp-users
Match Group sftp-users
? ? ChrootDirectory /home/sftp_root
? ? AllowTcpForwarding no
? ? X11Forwarding no
? ? ForceCommand internal-sftp
這些內(nèi)容的意思是:
只允許ssh-uers及sftp-users通過(guò)SSH訪問(wèn)系統(tǒng);
針對(duì)sftp-users用戶,額外增加一些設(shè)置:將“/home/sftp_root”設(shè)置為該組用戶的系統(tǒng)根目錄(因此它們將不能訪問(wèn)該目錄之外的其他系統(tǒng)文件);禁止TCP Forwarding和X11 Forwarding;強(qiáng)制該組用戶僅僅使用SFTP。
如果需要進(jìn)一步了解細(xì)節(jié),可以使用“man sshd_config”命令。這樣設(shè)置之后,SSH用戶組可以訪問(wèn)SSH,并且不受其他限制;而SFTP用戶組僅能使用SFTP進(jìn)行訪問(wèn),而且被關(guān)進(jìn)監(jiān)獄目錄。
第07步,重啟系統(tǒng)以便使新配置生效。
sudo reboot now
完成啦!
進(jìn)一步的討論:SSH用戶組將能遠(yuǎn)程訪問(wèn)所有系統(tǒng)文件,也許不是所有情況下都適用。某些情況下,也許想同樣把SSH用戶也關(guān)監(jiān)獄。這時(shí)候,需要作跟SFTP類似的配置(除了不用usermod -s /bin/false),而且需要
因?yàn)楣ぷ餍枰?#xff0c;我研究了一下如何在Ubuntu Server上配置SFTP,記錄如下。
需求:在服務(wù)器上開(kāi)通SFTP文件服務(wù),允許某些用戶上傳及下載文件。但是這些用戶只能使用SFTP傳輸文件,不能使用SSH終端訪問(wèn)服務(wù)器,并且SFTP不能訪問(wèn)系統(tǒng)文件(即所謂的“Jail(監(jiān)獄)”)。系統(tǒng)管理員則既能使用SFTP傳輸文件,也能使用SSH遠(yuǎn)程管理服務(wù)器。
為了便于討論,我假設(shè)我將允許sftp-users用戶組內(nèi)的用戶使用SFTP,但不允許使用SSH Shell,且該組用戶將被"監(jiān)獄"(修改系統(tǒng)根目錄)。我將在sftp-users組內(nèi)創(chuàng)建一個(gè)用戶“alice”。而我將允許ssh-users使用SFTP以及SSH。系統(tǒng)管理員的賬戶名為admin。
第01步,如果還沒(méi)有安裝OpenSSH服務(wù)器,先安裝它。
sudo apt-get install openssh-server
第02步,為SFTP訪問(wèn)創(chuàng)建用戶組,便于管理權(quán)限。
sudo addgroup sftp-users
第03步,創(chuàng)建SFTP用戶,并配置相應(yīng)權(quán)限。這里第二行的意思是將alice從所有其他用戶組中移除并加入到sftp-users組,并且關(guān)閉其Shell訪問(wèn)。如果想深入了解usermod命令,可以使用以下"man usermod"命令查看幫助文檔。
sudo adduser alice
sudo usermod -G sftp-users -s /bin/false alice
第04步,創(chuàng)建SSH用戶組,并把管理員加入到該組(注意usermod中的-a參數(shù)的意思是不從其他用戶組用移除)。
sudo addgroup ssh-users
sudo usermod -a -G ssh-users admin
第05步,準(zhǔn)備“監(jiān)獄”的根目錄及共享目錄。這里解釋一下,“監(jiān)獄”的根目錄必須滿足以下要求:所有者為root,其他任何用戶都不能擁有寫(xiě)入權(quán)限。因此,為了讓SFTP用戶能夠上傳文件,還必須在“監(jiān)獄”根目錄下再創(chuàng)建一個(gè)普通用戶能夠?qū)懭氲墓蚕砦募夸洝榱吮阌诠芾韱T通過(guò)SFTP管理上傳的文件,我把這個(gè)共享文件目錄配置為:由admin所有,允許sftp-users讀寫(xiě)。這樣,管理員和SFTP用戶組成員就都能讀寫(xiě)這個(gè)目錄了。
sudo mkdir /home/sftp_root
sudo mkdir /home/sftp_root/shared
sudo chown admin:sftp-users /home/sftp_root/shared
sudo chmod 770 /home/sftp_root/shared
第06步,修改SSH配置文件。
sudo nano /etc/ssh/sshd_config
在sshd_config文件的最后,添加以下內(nèi)容:
AllowGroups ssh-users sftp-users
Match Group sftp-users
? ? ChrootDirectory /home/sftp_root
? ? AllowTcpForwarding no
? ? X11Forwarding no
? ? ForceCommand internal-sftp
這些內(nèi)容的意思是:
只允許ssh-uers及sftp-users通過(guò)SSH訪問(wèn)系統(tǒng);
針對(duì)sftp-users用戶,額外增加一些設(shè)置:將“/home/sftp_root”設(shè)置為該組用戶的系統(tǒng)根目錄(因此它們將不能訪問(wèn)該目錄之外的其他系統(tǒng)文件);禁止TCP Forwarding和X11 Forwarding;強(qiáng)制該組用戶僅僅使用SFTP。
如果需要進(jìn)一步了解細(xì)節(jié),可以使用“man sshd_config”命令。這樣設(shè)置之后,SSH用戶組可以訪問(wèn)SSH,并且不受其他限制;而SFTP用戶組僅能使用SFTP進(jìn)行訪問(wèn),而且被關(guān)進(jìn)監(jiān)獄目錄。
第07步,重啟系統(tǒng)以便使新配置生效。
sudo reboot now
完成啦!
進(jìn)一步的討論:SSH用戶組將能遠(yuǎn)程訪問(wèn)所有系統(tǒng)文件,也許不是所有情況下都適用。某些情況下,也許想同樣把SSH用戶也關(guān)監(jiān)獄。這時(shí)候,需要作跟SFTP類似的配置(除了不用usermod -s /bin/false),而且需要
轉(zhuǎn)載于:https://www.cnblogs.com/java20130722/archive/2013/03/26/3206968.html
總結(jié)
以上是生活随笔為你收集整理的Ubuntu Server如何配置SFTP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Tempter of the Bone(
- 下一篇: 搞定ubuntu下环境变量的配置