Linux 配置sftp服務(wù)以及實(shí)現(xiàn)免密登錄
網(wǎng)上的一系列部署總有問(wèn)題,記錄下部署配置成功案例。
一、部署sftp服務(wù)
(本質(zhì)是sftp服務(wù)使用ssh中的協(xié)議,默認(rèn)端口也跟隨ssh服務(wù)的配置)
1、創(chuàng)建用戶組:
groupadd sftp
2、創(chuàng)建用戶testsftp,并將用戶添加到剛創(chuàng)建的用戶組,拒絕用戶登錄shell
useradd -g sftp -s /sbin/nologin testsftp
3、指定sftp的家目錄,自選人意位置,我這里就新建一個(gè)sftp的家目錄為/opt/sftp
mkdir -p /opt/sftp
4、配置ssh服務(wù)
#這里備份下sshd_config配置文件,養(yǎng)成修改前備份的好習(xí)慣 cp -rp /etc/ssh/sshd_config /etc/ssh/sshd_config-bak #打開(kāi)/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組的用戶,如果有多個(gè)組,用逗號(hào)分隔。也可以使用"Match User mysftp"匹配用戶,多個(gè)用戶之間也是用逗號(hào)分隔。
ChrootDirectory /opt/sftp:將用戶的根目錄指定到/opt/sftp
ForceCommand internal-sftp:指定sftp命令。
X11Forwarding no:是否允許用戶可以使用端口轉(zhuǎn)發(fā)。
————————————————
打開(kāi)密鑰登錄功能
————————————————
RSAAuthentication yes PubkeyAuthentication yes
可以禁用密碼方式登錄(根據(jù)自身實(shí)際需求設(shè)置)
PasswordAuthentication no
保存退出。然后檢驗(yàn)sshd配置,如有錯(cuò),根據(jù)錯(cuò)誤提示修正
sshd -T
5、設(shè)定Chroot目錄權(quán)限
#將文件sftp的擁有者設(shè)為 sftp 群體的使用者 root chown root:sftp /opt/sftp chmod 755 /opt/sftp
6、重啟sshd服務(wù)
systemctl restart sshd
照上面設(shè)置后,在重啟 sshd 服務(wù)后,用戶sftp已經(jīng)可以登錄(只能使用 sftp 登錄,使用 ssh 登錄不了)。但使用chroot 指定根目錄后,
根應(yīng)該是無(wú)法寫(xiě)入的,所以要新建一個(gè)目錄供 sftp上傳文件。這個(gè)目錄所有者為 sftp,所有組為sftp,所有者有寫(xiě)入權(quán)限,而所有組無(wú)寫(xiě)入權(quán)限。命令如下:
mkdir /opt/sftp/upload chown sftp:sftp /opt/sftp/upload chmod 755 /opt/sftp/upload
二、設(shè)置免密登錄
本質(zhì)是將需要登錄的服務(wù)器的公鑰數(shù)據(jù)加載到需要免密登錄的服務(wù)器的authorized_keys文件中?!緦?shí)際是配置ssh免密】)
1.在需要連接sftp的服務(wù)器上執(zhí)行,(注意選擇好使用用戶)
ssh-keygen -t rsa
回車兩次生成rsa公私鑰文件,可打開(kāi)/home/用戶/.ssh/文件夾查看,復(fù)制id_rsa.pub內(nèi)容準(zhǔn)備。
2.在部署sftp服務(wù)器上,cd到用戶sftp的賬戶家目錄,新建用戶默認(rèn)家用戶路徑在/home/用戶名。新建一個(gè).ssh文件夾,
在.ssh文件夾內(nèi)新建名為authorized_keys的文件,將復(fù)制過(guò)來(lái)的id_rsa.pub中的內(nèi)容增加到authorized_keys文件中。
此處注意,需要更改.ssh和authorized_keys的owner和group,因?yàn)閟ftp用戶只支持sftp協(xié)議,所以需要在root賬戶下創(chuàng)建.ssh和authorized_keys后,
執(zhí)行一下命令:
chown -R sftp:sftp /sftp/sftp_upload/.ssh
接下來(lái)就可以sftp sftp@sftp服務(wù)器IP,進(jìn)行直接進(jìn)行登錄了。
————————————————
原文鏈接:https://blog.csdn.net/zeng_dd/article/details/130242213