我的目标:限制跳转用户(进入 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
首先,让他们使用受限制的 Bash
rbash
。man bash
有关此信息,请参阅“受限外壳”。现在为这些用户设置PATH,这里作为示例用户名,到一个不寻常的目录:
echo "PATH=/usr/restricted/bin" > /home/username/.bash_profile
- 现在将命令作为符号链接或脚本添加到
/usr/restricted/bin
:
ln -s /usr/bin/ssh /usr/restricted/bin/ssh
(用于 ssh 到每个主机)
您可以使用名为 的脚本来限制目标主机/usr/restricted/bin/ssh
,该脚本检查第一个参数(如果这是允许的主机名之一)。