Linux系統(tǒng)配置sftp服務以及實現(xiàn)免密登錄方式
網(wǎng)上的一系列部署總有問題,記錄下部署配置成功案例。
一、部署sftp服務
(本質(zhì)是sftp服務使用ssh中的協(xié)議,默認端口也跟隨ssh服務的配置)
1、創(chuàng)建用戶組
groupadd sftp
2、創(chuàng)建用戶testsftp
并將用戶添加到剛創(chuàng)建的用戶組,拒絕用戶登錄shell
useradd -g sftp -s /sbin/nologin testsftp
3、指定sftp的家目錄
自選人意位置,我這里就新建一個sftp的家目錄為/opt/sftp
mkdir -p /opt/sftp
4、配置ssh服務
#這里備份下sshd_config配置文件,養(yǎng)成修改前備份的好習慣 cp -rp /etc/ssh/sshd_config /etc/ssh/sshd_config-bak #打開/etc/ssh/sshd_config,并搜索Subsystem字符位置,然后注釋 vim +/Subsystem /etc/ssh/sshd_config #行首加#注釋掉 #Subsystem sftp /usr/libexec/openssh/sftp-server ######################################################## #然后追加配置 Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /opt/sftp ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
Match Group sftp
:匹配sftp組的用戶,如果有多個組,用逗號分隔。也可以使用"Match User mysftp"匹配用戶,多個用戶之間也是用逗號分隔。ChrootDirectory
/opt
/sftp
:將用戶的根目錄指定到/opt/sftpForceCommand internal-sftp
:指定sftp命令。X11Forwarding no
:是否允許用戶可以使用端口轉(zhuǎn)發(fā)。
打開密鑰登錄功能
RSAAuthentication yes PubkeyAuthentication yes
可以禁用密碼方式登錄(根據(jù)自身實際需求設置)
PasswordAuthentication no
保存退出。然后檢驗sshd配置,如有錯,根據(jù)錯誤提示修正
sshd -T
5、設定Chroot目錄權(quán)限
#將文件sftp的擁有者設為 sftp 群體的使用者 root chown root:sftp /opt/sftp chmod 755 /opt/sftp
6、重啟sshd服務
systemctl restart sshd
照上面設置后,在重啟 sshd 服務后,用戶sftp已經(jīng)可以登錄(只能使用 sftp 登錄,使用 ssh 登錄不了)。
但使用chroot 指定根目錄后,根應該是無法寫入的,所以要新建一個目錄供 sftp上傳文件。
這個目錄所有者為 sftp,所有組為sftp,所有者有寫入權(quán)限,而所有組無寫入權(quán)限。
命令如下:
mkdir /opt/sftp/upload chown sftp:sftp /opt/sftp/upload chmod 755 /opt/sftp/upload
二、設置免密登錄
本質(zhì)是將需要登錄的服務器的公鑰數(shù)據(jù)加載到需要免密登錄的服務器的authorized_keys文件中。【實際是配置ssh免密】)
1、在需要連接sftp的服務器上執(zhí)行
(注意選擇好使用用戶)
ssh-keygen -t rsa
回車兩次生成rsa公私鑰文件,可打開/home/用戶/.ssh/文件夾查看,復制id_rsa.pub內(nèi)容準備。
2、在部署sftp服務器上
cd到用戶sftp的賬戶家目錄,新建用戶默認家用戶路徑在/home/用戶名。
新建一個.ssh文件夾,在.ssh文件夾內(nèi)新建名為authorized_keys的文件,將復制過來的id_rsa.pub中的內(nèi)容增加到authorized_keys文件中。
此處注意,
需要更改.ssh和authorized_keys的owner和group,因為sftp用戶只支持sftp協(xié)議,所以需要在root賬戶下創(chuàng)建.ssh和authorized_keys后,執(zhí)行一下命令:
chown -R sftp:sftp /sftp/sftp_upload/.ssh
接下來就可以sftp sftp@sftp服務器IP,進行直接進行登錄了。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解Linux中PostgreSQL和PostGIS的安裝和使用
這篇文章主要介紹了詳解Linux中PostgreSQL和PostGIS的安裝和使用,并把需要注意點做了分析和解釋,需要的朋友學習下。2018-02-02Linux CentOS 6.5 ifconfig查詢不到ip的解決方法
這篇文章主要介紹了Linux CentOS 6.5 ifconfig查詢不到ip的解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07Linux 安裝二進制MySQL 及 破解MySQL密碼的方法
這篇文章主要介紹了Linux 安裝二進制MySQL 及 破解MySQL密碼的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09