Linux (Debian)安裝sftp伺服器

2021-10-03 03:26:45 字數 1315 閱讀 8912

最近需要在伺服器上遠端部署專案,鑑於幾乎所有的linux伺服器都安裝了ssh,使用sftp可以更省資源,不需要開啟額外的程序和埠。接下來記錄sftp的設定過程,系統環境基於debian 9。整理一下搭建sftp伺服器的過程,供參考;

操作流程如下:

1、建立sftp目錄

#mkdir  /var/stft

2、建立sftp的使用者和使用者組

#groupadd sftp

#useradd -g sftp -d /var/sftp -s /bin/false sftp 

#passwd sftp

#j設定密碼

3、編輯ssh的配置檔案,設定chroot目錄,把sftp限制在他的使用者目錄下(%h代表使用者目錄),並且禁止掉其他不需要的ssh許可權

vi /etc/ssh/sshd_config

# 找到subsystem,注釋掉原來的那行

#subsystem sftp /usr/lib/openssh/sftp-server

# 再新增下面的新行

subsystem sftp internal-sftp

# 限制sftp的目錄,讓他看不到不應該看到的東西

match group sftp

chrootdirectory %h

allowtcpforwarding no

x11forwarding no

forcecommand internal-sftp

4、建立上傳目錄並設定許可權,chrootdirectory的目錄和其所有上層目錄的所有者必須是root,並且許可權不能大於755

#cd /var/sftp

#mkdir www

#chmod 770 www

#chown sftp:sftp www

#cd ..

#chmod 755 sftp

#chown root:root sftp

5、設定掩碼,以便外部程式能夠使用

sftp上傳過程中建立的目錄和檔案所有者固定為sftp:sftp,許可權預設為755,其他使用者只能讀不能寫。這裡我們需要修改為可以被組成員讀寫(當然了解原理後你也可以圖省事,直接允許所有使用者讀寫)

#vi /etc/pam.d/sshd

* 在檔案最末尾新增

session optional pam_umask.so umask=0007 # 也可以是0002

6、還原shell中的預設umask,避免被sftp覆蓋

#nano /etc/profile

* 在檔案最末尾新增

umask 022

nginx訪問設定

參考

Linux Debian 上安裝Redis教程

第一種 cd usr local src wget 1.tar.gz 解壓tar xzf redis 3.0 1.tar.gz 第二步編譯安裝 make make all make install 注意 可能會安裝命令 安裝make命令 apt get install make 安裝sysv rc ...

linux debian 下安裝gcc及nginx

預設的debian 6 提示找不到編譯器gcc 修改vi etc apt sources.list 裡面的debian源全部刪掉 填入163的debian源 deb squeeze main non free contrib deb squeeze proposed updates main non...

linux debian 編譯安裝php5 6

安裝編譯程式 apt get install gcc apt get install make apt get install libxml2 apt get install libxml 2.6 dev 建立安裝目錄 mkdir usr local php mkdir usr local php ...