写点什么

Linux 学习笔记 -Ubuntu 系统下配置用户 ssh 只能访问 git 仓库

  • 2024-09-27
    四川
  • 本文字数:824 字

    阅读完需:约 3 分钟

Linux学习笔记-Ubuntu系统下配置用户ssh只能访问git仓库

在 Ubuntu 系统下,你可能想要配置用户 SSH 只能访问 git 仓库。这种情况通常发生在你希望限制用户的权限,只允许他们克隆、推送和拉取 git 仓库,而不允许他们登录到服务器或访问其他系统资源。以下是如何实现这一目标的步骤:

步骤一:创建 git 用户

首先,你需要创建一个专门的用户来管理 git 仓库。在这个例子中,我们将这个用户称为"git"。在命令行中输入以下命令:

sudo adduser git
复制代码

步骤二:安装 git

确保你的系统已经安装了 git。如果没有,可以使用以下命令进行安装:

sudo apt-get install git
复制代码

步骤三:创建 git 仓库

接下来,以 git 用户身份创建一个新的 git 仓库。首先,切换到 git 用户:

sudo su - git
复制代码

然后,创建一个新的裸仓库:

mkdir ~/myrepo.gitcd ~/myrepo.gitgit --bare init
复制代码

这将创建一个新的空 git 仓库,用户可以克隆、推送和拉取,但不能直接在其中进行工作。

步骤四:配置 SSH

在 git 用户的家目录中创建一个.ssh 目录,并设置正确的权限:

mkdir ~/.sshchmod 700 ~/.ssh
复制代码

然后,创建一个名为 authorized_keys 的文件,将用户的公钥添加到这个文件中:

touch ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys
复制代码

接下来,将用户的公钥(位于~/.ssh/id_rsa.pub)复制并粘贴到~/.ssh/authorized_keys 文件中。

步骤五:限制 SSH 访问

为了限制用户只能访问 git 仓库,你需要在 authorized_keys 文件中的公钥前面添加一些选项。编辑文件,使其看起来像这样:

command="/usr/bin/git-shell",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAA...
复制代码

/usr/bin/git-shell 是一个限制 shell,它只允许 git 相关的命令,而禁止了其他所有命令。

这样,当用户尝试通过 SSH 登录时,他们将被限制在 git-shell 中,只能运行 git 命令,无法执行任何其他命令或访问其他资源。

以上就是在 Ubuntu 系统下配置用户 SSH 只能访问 git 仓库的步骤。这种配置能够有效地保护你的系统安全,防止未经授权的用户访问。同时,它也为合法用户提供了一个方便的方式来克隆、推送和拉取 git 仓库。

用户头像

百度搜索:蓝易云 2023-07-05 加入

香港五网CN2免备案服务器

评论

发布
暂无评论
Linux学习笔记-Ubuntu系统下配置用户ssh只能访问git仓库_百度搜索:蓝易云_InfoQ写作社区