Linux 7 5 SSH服務和SFTP服務分離

2022-09-13 06:33:15 字數 3582 閱讀 6605

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服...