利用CentOS自帶SSH服務搭建SFTP伺服器

2021-07-10 15:40:36 字數 2011 閱讀 6641

傳統的ftp資料不夠安全,所以伺服器上一般採用sftp的方式對資料進行加密。如果伺服器上已經開通了ssh服務,我們就可以直接利用ssh來開通sftp服務,無需再另外安裝軟體。

一,新建系統賬號

1.1 新建賬號分組

groupadd sftp

1.2 新建賬號paul

useradd -s /sbin/nologin -g sftp -d /zserver/demo   paul

passwd paul        //設定賬號的密碼

說明:

-s 賬號登陸的模式,/sbin/nologin表示此賬號只能ftp登陸,不能系統訪問

-g sftp: 賬號屬於sftp分組

-d :設定賬號的根目錄

【目錄許可權的要求】

如果要想paul可以sftp賬號登陸並成功訪問/zserver/demo目錄,需要滿足以下苛刻的條件。否則無法登入,給出的錯誤提示也讓人摸不著頭腦,無從查起。我在這上面浪費了很多時間。

ø  賬號的根目錄需要完全屬於賬號本身。

ø  賬號根目錄的上一級目錄以及以上的全部目錄都必須屬於root賬號,並且有且僅有root擁有寫許可權,也就是說許可權最大設定為755。

1.3 設定賬號根目錄的許可權

#cd /zserver/

#chown -r paul:sftp  demo/

#chown -r 755 demo/

二,ssh版本:

首先要公升級openssh的版本。只有4.8p1及以上版本才支援chroot。

檢視ssh版本的指令是:

# ssh –v

# openssh_5.3p1, openssl1.0.1e-fips 11 feb 2013

usage: ssh[-1246aacfgkkmnnqsttvvxxyy] [-b bind_address] [-c cipher_spec]

[-d [bind_address:]port] [-eescape_char] [-f configfile]

[-i pkcs11] [-i identity_file]

[-l[bind_address:]port:host:hostport]

[-l login_name] [-m mac_spec] [-octl_cmd] [-o option] [-p port]

[-r[bind_address:]port:host:hostport] [-s ctl_path]

[-w host:port] [-wlocal_tun[:remote_tun]]

[user@]hostname [command]

三,修改ssh配置檔案

ssh版本滿足要求後,需要修改ssh的配置檔案。

ssh的最主要的配置檔案有兩個,分別為:

/etc/ssh/ssh_config

/etc/ssh/sshd_config

修改sshd_config如下: #

注釋原來的subsystem設定

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

啟用internal-sftp

subsystem  sftp  internal-sftp

四,限制使用者sftp訪問的根目錄

#限制paul使用者的根目錄

match user www

chrootdirectory /zserver

forcecommand    internal-sftp

【注意】

這裡配置的賬號paul被限制訪問的目錄,一定要是乙個擁有者是root的目錄,否則paul將無法被限制且會導致登陸各種錯誤和異常。

#限制blog和pay使用者的根目錄

match group sftp

chrootdirectory %h

forcecommand    internal-sftp

五,最後重啟ssh服務:

# service sshd restart

CentOS解除安裝自帶http服務的方法

首先關閉httpd服務 列出httpd相關程式包 列出包如下 解除安裝包rpm e httpd manual 2.2.3 63.el5.centos.1 這樣就解除安裝完成了 解除安裝自帶apache 1 rpm qa grep httpd,檢視與httpd相關軟體包。2 然後刪除httpd 出現問...

centos配置ssh和ftp服務

1 使用chkconfig list來檢視是否裝有vsftpd服務 3 然後為它建立日誌檔案 touch var log vsftpd.log 4 使用chkconfig list來檢視vsftpd服務啟動項情況 如果看到的是如下顯示的結果 vsftpd 0 off 1 off 2 off 3 of...

centos7安裝ssh服務

rpm qa grep e openssh 顯示結果含有以下三個軟體,則表示已經安裝,否則需要安裝缺失的軟體 openssh ldap 6.6.1p1 35.el7 3.x86 64 openssh clients 6.6.1p1 35.el7 3.x86 64 openssh 6.6.1p1 35...