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

这篇具有很好参考价值的文章主要介绍了Linux系统配置sftp服务以及实现免密登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux 配置sftp服务以及实现免密登录

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

一、部署sftp服务

(本质是sftp服务使用ssh中的协议,默认端口也跟随ssh服务的配置)
1、创建用户组:

groupadd sftp

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

useradd -g sftp -s /sbin/nologin testsftp

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

mkdir -p /opt/sftp

4、配置ssh服务

#这里备份下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:是否允许用户可以使用端口转发。
————————————————
打开密钥登录功能

RSAAuthentication yes
PubkeyAuthentication yes

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

PasswordAuthentication no

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

sshd -T

5、设定Chroot目录权限

#将文件sftp的拥有者设为 sftp 群体的使用者 root
chown root:sftp /opt/sftp
chmod 755 /opt/sftp

6、重启sshd服务

systemctl restart sshd

照上面设置后,在重启 sshd 服务后,用户sftp已经可以登录(只能使用 sftp 登录,使用 ssh 登录不了)。但使用chroot 指定根目录后,根应该是无法写入的,所以要新建一个目录供 sftp上传文件。这个目录所有者为 sftp,所有组为sftp,所有者有写入权限,而所有组无写入权限。命令如下:

mkdir /opt/sftp/upload
chown sftp:sftp /opt/sftp/upload
chmod 755 /opt/sftp/upload

二、设置免密登录

本质是将需要登录的服务器的公钥数据加载到需要免密登录的服务器的authorized_keys文件中。【实际是配置ssh免密】)
1.在需要连接sftp的服务器上执行,(注意选择好使用用户)

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后,执行一下命令:

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

接下来就可以sftp sftp@sftp服务器IP,进行直接进行登录了。文章来源地址https://www.toymoban.com/news/detail-594701.html

到了这里,关于Linux系统配置sftp服务以及实现免密登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • centos7系统下,实现1台服务器免密登录多台服务器功能

    1:检查每台服务器是否都安装了SSH: 2:在kafka01服务器上执行:(一直按回车即可!) 3:查看kafka01的.ssh目录: id_rsa (私钥) id_rsa.pub (公钥) 4:在kafka01服务器上执行如下命令,将公钥传给kafka02服务器,实现kafka01能够免密登录kafka02: 然后中途需要我们输入kafka02的密码,

    2024年02月08日
    浏览(62)
  • 服务器——配置免密登录

    打开本机的终端,输入 ssh-keygen ,默认一路点enter。 将生成的 id_rsa.pub 公钥文件,复制一份改一个名称,比如改名成 id_rsa_test.pub 。 将改名后的 id_rsa_test.pub 公钥文件粘贴到对应账户 .ssh 文件夹下。 传输过来的公钥追加入密钥文件: cat id_rsa_test.pub authorized_keys (若是没有 a

    2024年01月18日
    浏览(35)
  • linux—多服务免密登录

    场景:在部署greenplum集群时,希望实现 master 节点使用gpadmin用户免密登录 slave1和 slave2 节点; 具体配置配置步骤如下: step_1: IP映射 说明: 1)需要在 master 服务器的 /etc/hosts 下添加 slave1 和 slave2 的IP以及hostname的映射关系; 2)这里不进行IP和hostname映射也可以,这样后面的免

    2024年01月20日
    浏览(35)
  • Xshell配置密钥 免密登录Linux

    一、使用Xshell生成密钥 打开Xshell-点击工具-点击新建用户密钥生成向导     输入密钥名称和密码(密码可以为空)   复制公钥然后点击完成即可   这里直接点击关闭   二、将公钥粘贴至服务器的~/.ssh/authorized_keys 文件中 连接Linux-打开xftp  找到.ssh目录下的authorized_key文件并将

    2024年02月03日
    浏览(42)
  • vscode 配置ssh 免密登录 多台服务器

    Visual Studio Code - Code Editing. Redefined 之前一直用pycharm 但是好像社区免费版本不能连接服务器,还要本地同步代码,比较繁琐,因此改用vscode。 添加后可以尝试登录,确认下账号密码,vpn是否正常 ssh name@ip -22 输入密码即可 win+r 打开运行 cmd 弹出terminal ssh-keygen 三次回车 默认地

    2024年02月17日
    浏览(64)
  • VSCode配置SSH远程免密登录服务器

    VScode远程开发时,每次都需要输入密码,其实同理可以和其他应用类似配置免密登录,流程也类似。 1.在本地主机生成公钥和秘钥         ssh-keygen 2.将公钥内容添加至服务器         将生成钥对时会给出其保存路径,找到公钥,复制内容,添加到如下文件。         s

    2024年02月13日
    浏览(55)
  • linux实现免密登录

    有时我们在登录linux主机的时候不想要输入密码,就想要配置免密登录,本文就来看看如何实现这种配置。 在linux每个用户的家目录下有个.ssh的隐藏文件,里面一般会有四个文件 authorized_keys: 存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥。 id_rsa: 生成的私

    2024年04月09日
    浏览(36)
  • 【面试题25】如何免密登录Linux服务器

    本文已收录于PHP全栈系列专栏:PHP面试专区。 计划将全覆盖PHP开发领域所有的面试题, 对标资深工程师/架构师序列 ,欢迎大家提前关注锁定。 在日常运维工作中,频繁地使用SSH登录到Linux服务器是非常常见的事情。默认情况下,我们需要输入用户名和密码才能与服务器建立

    2024年02月11日
    浏览(52)
  • 阿里云服务器环境配置,ssh免密登录和配置docker

    此文章适合ubuntu20.04 64位和ubuntu22.04 64位版本 一.登陆服务器 租完服务器后,首选需要使用本地gitbash或者cmd进入服务器, 命令: ssh root@xxx   xxx为服务器公网ip,然后yes,然后输入密码就会进入自己的服务器, 二.创建用户 阿里云服务器默认权限是root用户,权限太高,所以需

    2024年02月04日
    浏览(44)
  • Visual Studio Code连接远程服务器连接ssh,并设置免密登录以及汉化

    本文介绍如何在Visual Studio Code连接远程服务器连接ssh,并设置免密登录以及界面汉化等。 https://code.visualstudio.com/Download 1.进入官网下载对应版本的IDE 1.点击左侧的“Extensions”拓展下载插件包Python、Chinese(记得点击右下角弹出来的应用即可重新启动展示中文界面)、ssh 2.点击

    2024年02月16日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包