ssh 自动转发?

ssh 自动转发?

我不确定这种类型的活动是否有特定的名称,但无论如何:

当用户通过 ssh 进入 machine1 时,是否有某种方法可以强制他们自动通过 ssh 进入 machine2?

例如,如果用户 Bob 通过 ssh 进入了服务器 1,您是否可以在服务器 1 上进行设置,以便 Bob 成功登录后,会自动通过 ssh 进入服务器 2,这样他就只能访问服务器 2,而无法在服务器 1 上执行任何操作?此外,当他退出时,系统会断开他与服务器 2 以及服务器 1 的连接。

这有道理吗?这可能吗?

答案1

这里真正的要求是 Bob 需要 ssh 访问 machine2,但因为位于防火墙后面而无法直接访问它吗?如果是这样,最干净的解决方案可能是将 server1 上的端口转发到 server2 上的 ssh 端口 (22),您可以使用 iptables 执行此操作,请参阅http://www.debian-administration.org/articles/73.然后用户可以

ssh -p <port number> server1 

进入服务器2。

如果您确实想强制登录到 server1 的用户直接进入 server2,那么可以将 server1 上相关用户的 shell 设置为运行“ssh server2”的脚本,但是用户最终将不得不输入两次密码(如果您使用密码)- 一次用于 server1,另一次用于 server2 - 并且您还需要小心锁定 server1 上的 SSH 服务器,以防止用户通过它进行端口转发等(无论您的 shell 设置为何,您都可以通过 SSH 访问执行此操作)。

答案2

将其添加到 bob 主目录中的 .ssh/authorized_keys 文件中:

command="ssh host2" ...bob's key here...

这称为“强制命令”。Google 可以为您提供更多信息。

答案3

要执行您想要的操作,您应该编辑用户的 .bash_profile,以便通过 ssh 进入服务器 2,然后以下行发出退出命令。一旦他的 ssh 会话结束,配置文件将启动“退出”命令并注销他。

相关内容