sftp是ssh的一部分,sftp沒有單獨的守護程序,它必須使用sshd守護程序(埠號預設是22)來完成相應的連線操作,所以從某種意義上來說,sftp並不像是乙個伺服器程式,而更像是乙個客戶端程式。
sftp是使用加密傳輸認證資訊傳輸資料,所以sftp是非常安全的。
本手冊是在centos7.5系統上進行編寫,理論上支援centos7.0以上版本
使用xshell工具連線sftp伺服器,輸入systemctl status sshd,檢視結果如下,表示機器sftp已開啟且可用
若sftp未開啟,通過命令systemctl start sshd開啟
sftp服務關閉命令為:systemctl stop sshd
系統內開啟ssh服務和sftp服務都是通過/usr/sbin/sshd這個後台程式監聽22埠,而sftp服務作為乙個子服務,是通過/etc/ssh/sshd_config配置檔案中的subsystem實現的,如果沒有配置subsystem引數,則系統是不能進行sftp訪問的。
具體操作如下:
1、 拷貝/usr/lib/systemd/system/目錄下的sshd.service檔案,放到/etc/systemd/system/目錄下,命名為:sftpd.service
cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service
2、 拷貝/etc/pam.d/目錄下的sshd檔案,放到同目錄,命名為:sftpd
cp /etc/pam.d/sshd /etc/pam.d/sftpd
3、 拷貝/etc/ssh/目錄下的sshd_config檔案,放到同目錄,命名為:sftpd_config
cp /etc/ssh/sshd_config /etc/ssh/sftpd_config
4、 對service和rcsftpd進行軟連線
ln -sf /usr/sbin/service /usr/sbin/rcsftpd
5、 對sshd和sftpd進行軟連線
ln -sf /usr/sbin/sshd /usr/sbin/sftpd
6、 拷貝/etc/sysconfig/目錄下的sshd檔案,放到同目錄,命名為:sftp
cp /etc/sysconfig/sshd /etc/sysconfig/sftp
7、 拷貝/var/run/目錄下的sshd.pid檔案,放到同目錄,命名為:sftpd.pid
1、 修改/etc/systemd/system/目錄下sftpd.service檔案
修改圖中圈紅部分:
[unit]
description=sftpd server daemon
documentation=man:sshd(8) man:sshd_config(5)
after=network.target sshd-keygen.service
wants=sshd-keygen.service
[service]
type=notify
environmentfile=/etc/sysconfig/sftp
execstart=/usr/sbin/sftpd -f /etc/ssh/sftpd_config
execreload=/bin/kill -hup $mainpid
killmode=process
restart=on-failure
restartsec=42s
[install]
wantedby=multi-user.target
2、 修改/etc/ssh/目錄下的sftpd_config檔案
vim /etc/ssh/sftpd_config
具體修改如下:
①找到第17行,將
port 22
改成port 20022
②找到第38行,將
#permitrootlogin yes
改成permitrootlogin no
就是取消該行的注釋,並將yes改成no,這行引數的目的是拒絕root使用者登入
③找到116行,將
#pidfile /var/run/sshd.pid
改成pidfile /var/run/sftpd.pid
就是取消該行的注釋,並將sshd.pid改成sftpd.pid
④找到第132行,將
subsystem sftp /usr/libexec/openssh/sftp-server
注釋#subsystem sftp /usr/libexec/openssh/sftp-server並添以下5行
subsystem sftp internal-sftp
match user sftpuser
x11forwarding no
allowtcpforwarding no
forcecommand internal-sftp
就是注釋132行,並將132行下面,新增5行內容。
3、 清空/var/run/目錄下的sftpd.pid檔案內容
# > /var/run/sftpd.pid
將內容刪掉
4、 新增sftp的專用賬戶
useradd sftpuser
passwd sftpuser
usermod -s /bin/false sftpuser
5、 禁用selinux
setenforce 0
sed -i "s/^selinux\=enforcing/selinux\=disabled/g" /etc/selinux/config
6、 重啟sftpd服務
使用xftp軟體,連線修改好的伺服器,通過新建的使用者和埠連線
連線成功
centos7 5開啟ssh服務
1,檢視是否已安裝openssh server 指令 rpm qa grep ssh 2,如果未安裝,請先安裝openssh server 修改埠號 允許root登入 設定需要密碼登入 修改好後輸入 wqa 儲存退出 4,開啟ssh服務 systemctl start sshd.service 5,...
linux安裝ssh和開啟 ssh服務
1.安裝ssh 如果你用的是redhat,fedora,centos等系列linux發行版,那麼敲入以下命令 sudo yum install sshd 或 sudo yum install openssh server 由osc 火耳提供 如果你使用的是debian,ubuntu,linux mi...
linux安裝ssh和開啟 ssh服務
輸入以下命令 sudo service sshd status如果出現 loaded error reason no such file or directory 提示的話,說名沒有安裝ssh服務,按照第二步 安裝ssh服務。如果出現 active inactive dead 說明已經安裝了ssh服...