广告位联系
返回顶部
分享到

Linux系统配置sftp服务以及实现免密登录方式

linux 来源:互联网 作者:佚名 发布时间:2024-06-11 21:26:22 人浏览
摘要

网上的一系列部署总有问题,记录下部署配置成功案例。 一、部署sftp服务 (本质是sftp服务使用ssh中的协议,默认端口也跟随ssh服务的配置) 1、创建用户组 1 groupadd sftp 2、创建用户testsftp 并

网上的一系列部署总有问题,记录下部署配置成功案例。

 

一、部署sftp服务

(本质是sftp服务使用ssh中的协议,默认端口也跟随ssh服务的配置)

 

1、创建用户组

1

groupadd sftp

 

2、创建用户testsftp

并将用户添加到刚创建的用户组,拒绝用户登录shell

1

useradd -g sftp -s /sbin/nologin testsftp

 

3、指定sftp的家目录

自选人意位置,我这里就新建一个sftp的家目录为/opt/sftp

1

mkdir -p /opt/sftp

 

4、配置ssh服务

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#这里备份下sshd_config配置文件,养成修改前备份的好习惯

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/sftp
  • ForceCommand internal-sftp:指定sftp命令。
  • X11Forwarding no:是否允许用户可以使用端口转发。

打开密钥登录功能

1

2

RSAAuthentication yes

PubkeyAuthentication yes

可以禁用密码方式登录(根据自身实际需求设置)

1

PasswordAuthentication no

保存退出。然后检验sshd配置,如有错,根据错误提示修正

1

sshd -T

 

5、设定Chroot目录权限

1

2

3

#将文件sftp的拥有者设为 sftp 群体的使用者 root

chown root:sftp /opt/sftp

chmod 755 /opt/sftp

 

6、重启sshd服务

1

systemctl restart sshd

照上面设置后,在重启 sshd 服务后,用户sftp已经可以登录(只能使用 sftp 登录,使用 ssh 登录不了)。

但使用chroot 指定根目录后,根应该是无法写入的,所以要新建一个目录供 sftp上传文件。

这个目录所有者为 sftp,所有组为sftp,所有者有写入权限,而所有组无写入权限。

命令如下:

1

2

3

mkdir /opt/sftp/upload

chown sftp:sftp /opt/sftp/upload

chmod 755 /opt/sftp/upload

 

二、设置免密登录

本质是将需要登录的服务器的公钥数据加载到需要免密登录的服务器的authorized_keys文件中。【实际是配置ssh免密】)

 

1、在需要连接sftp的服务器上执行

(注意选择好使用用户)

1

ssh-keygen -t rsa

回车两次生成rsa公私钥文件,可打开/home/用户/.ssh/文件夹查看,复制id_rsa.pub内容准备。

 

2、在部署sftp服务器上

cd到用户sftp的账户家目录,新建用户默认家用户路径在/home/用户名。

新建一个.ssh文件夹,在.ssh文件夹内新建名为authorized_keys的文件,将复制过来的id_rsa.pub中的内容增加到authorized_keys文件中。

此处注意,

需要更改.ssh和authorized_keys的owner和group,因为sftp用户只支持sftp协议,所以需要在root账户下创建.ssh和authorized_keys后,执行一下命令:

1

chown -R sftp:sftp /sftp/sftp_upload/.ssh

接下来就可以sftp sftp@sftp服务器IP,进行直接进行登录了。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • linux scp免密传输、ssh免密登陆方式

    linux scp免密传输、ssh免密登陆方式
    1. SCP命令的使用 1 scp -p 你想发送的文件 目标主机用户名@IP:目标地址 演示一下: 我本地的虚拟机想往我的云服务器上面发送文件,可以看到
  • Linux系统配置sftp服务以及实现免密登录方式
    网上的一系列部署总有问题,记录下部署配置成功案例。 一、部署sftp服务 (本质是sftp服务使用ssh中的协议,默认端口也跟随ssh服务的配置
  • Linux查看log日志常用命令
    Linux日志存储在/var/log目录中,我们可以编写脚本,来扫描这些日志,并基于它们的内容去自动执行某些功能。Linux查看日志的命令有多种: tail、
  • 在Linux系统上刷新DNS缓存的方法

    在Linux系统上刷新DNS缓存的方法
    DNS(域名系统)是互联网的一项服务,它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用记住能
  • Linux centos如何让普通用户获取root权限

    Linux centos如何让普通用户获取root权限
    Linux centos让普通用户获取root权限 第一步 创建用户hyf,给用户设置密码(用root身份创建) 1 2 useradd hy fpasswd hyf passwd:所有的身份验证令牌已
  • Linux使用其他用户(非root用户)设置root权限及免密
    Linux其他用户设置root权限及免密 在linux系统中我们经常要创建一些非root用户来完成一些特定的操作,有时我们需要执行一些root用户才能执行
  • linux关闭numa的教程

    linux关闭numa的教程
    linux关闭numa 以下内容在Centos8操作系统演示 1、编辑/etc/default/grub 2、在 GRUB_CMDLINE_LINUX里添加 numa=off 3、输入命令 grub2-mkconfig -o /boot/grub2/grub
  • Linux下性能分析工具Perf安装与用法
    1、Perf介绍 perf是Linux下的一款性能分析工具,能够进行函数级与指令级的热点查找。它由一个叫Performance counters的内核子系统实现,基于事件
  • Linux使用perf分析CPU占用情况的方法步骤

    Linux使用perf分析CPU占用情况的方法步骤
    1. 如何使用perf工具 1.1 perf安装 参考perf工具安装和使用 perf安装命令: 1 2 3 4 sudo apt-get install linux-tools-$(uname -r) linux-tools-generic -y sudo apt-get
  • Linux如何定时删除7天前的日志文件
    打开Linux cron任务编辑模式 1 crontab -e 输入任务命令 1 0 0 * * * find /home/sto/*log* -type f -mtime +7 -delete 明天0点0分搜索目录/home/sto的log文件 将7天前
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计