设置chroot环境ssh直通

  • 设置chroot环境ssh直通已关闭评论
  • 77 次浏览
  • A+
所属分类:linux技术
摘要

该方案实现的效果就是通过指定用户名可以直接ssh连接到某个linux机器中的chroot开发环境,在 ubuntu 22.04 环境测试通过


前言

该方案实现的效果就是通过指定用户名可以直接ssh连接到某个linux机器中的chroot开发环境,在 ubuntu 22.04 环境测试通过

流程

首先我们需要有个现成的 chroot 环境,我这里是 debian10-aarch64 文件夹,如果你没有可以参考我先前的文章制作一个:
https://www.cnblogs.com/magicdmer/p/17640427.html

这个环境不要位于某个用户目录下,最好位于 opt 这种顶层目录下,不然会出现各种权限导致的 ssh 无法连接的问题

然后我们需要设置 chroot 环境文件夹的权限为 755,接着设置其 owner 为 root:root

chmod 755 -R debian10-aarch64 chown root:root -R debian10-aarch64  

然后我们在外面系统创建一个用户名,这里我创一个用户 debian10

adduser debian10 

然后我们 cd 到 chroot 环境的 home 目录,创建一个 debian10 用户名文件夹当做其 chroot 环境的用户目录,然后修改其 owner 为 debian10:debian10
接着我们配置 ssh 配置文件,在最下面加入

Match User debian10         ChrootDirectory /opt/debian10-aarch64 

然后我们将外面 linux 环境的 /etc/passwd/etc/group 拷贝到 chroot 环境的 /etc 目录,这个步骤是为了解决 chroot 环境 ssh 上去后命令行只会显示一个 $ 而不是 debian10@xxxx$ 的问题

接着我们要解决 chroot 环境无法 su 到 root 用户的问题,这个需要我们先从外面 linux 环境使用 chroot 进去,这样我们默认就是 root 用户,就可以执行一些安装操作,我们需要安装一个 sudo,安装完后,我们需要修改 sudoer 文件,这里我们使用 visudo 指令来修改,这样方便 sudo 即刻生效,添加下面这条:

debian10  ALL=(ALL:ALL) NOPASSWD:ALL 

然后我们就可以 ssh 上去,使用 sudo -i 来切换到 root 用户,或者使用 sudo 指令来执行一些命令了