如何限制跳转用户(进入openSSH跳转盒)只能通过SSH连接到另一台服务器?

如何限制跳转用户(进入openSSH跳转盒)只能通过SSH连接到另一台服务器?

我的目标:限制跳转用户(进入 OpenSSH Jumpbox)只能通过 SSH 访问另一台服务器。除了从 Jumpbox 到另一台服务器的 ssh 之外,用户不应该能够列出目录、cd 或其他任何内容。

我拥有的:

  • Active Directory 用户登录跳转服务器,然后通过 SSH 连接到其他服务器
  • Ubuntu 20.04上配置的OpenSSH跳转服务器

我所做的:编辑/etc/ssh/sshd_config

Match User testuser
  AllowTcpForwarding yes
  X11Forwarding no
  AllowAgentForwarding no
  ForceCommand /bin/false

当我添加时ForceCommand /bin/false,testuser甚至无法通过ssh跳转服务器。没有它,用户可以登录跳转服务器,但仍然可以列出目录和 cd。

答案1

  1. 首先,让他们使用受限制的 Bash rbashman bash有关此信息,请参阅“受限外壳”。

  2. 现在为这些用户设置PATH,这里作为示例用户名,到一个不寻常的目录:

echo "PATH=/usr/restricted/bin" > /home/username/.bash_profile

  1. 现在将命令作为符号链接或脚本添加到/usr/restricted/bin

ln -s /usr/bin/ssh /usr/restricted/bin/ssh(用于 ssh 到每个主机)

您可以使用名为 的脚本来限制目标主机/usr/restricted/bin/ssh,该脚本检查第一个参数(如果这是允许的主机名之一)。

相关内容