从目标计算机禁用多跳SSH?

时间:2012-07-03 15:18:22

标签: ssh

这可能已被问到某个地方,但我找不到它的生命。

我目前正在设置一台服务器机器,我想这样做,只有那些直接通过SSH连接到服务器并拥有授权密钥的计算机才能进入。我已经获得了工作的密钥,但我不知道应该如何确保人们不能多跳进服务器机器。我想知道:

  • 是否可以通过仅更改服务器计算机上的设置来禁用多跳?
  • 如果是,我该怎么做呢?
  • 如果没有,我还有什么其他方法可以实现我的目标?

1 个答案:

答案 0 :(得分:1)

我不相信只能更改服务器上的设置。

如果您的服务器被称为server并且网络上的另一台计算机被称为aux,那么您需要禁用以下多跳方法,可能还有其他方法:

  1. ssh -t aux ssh server
  2. ssh -o ProxyCommand='ssh aux /usr/bin/nc %h %p' server
  3. ssh -N -L 2222:server:22 aux & ssh -p 2222 localhost
  4. 所以你需要确保

    • ssh在网络上的任何其他计算机上运行时将拒绝连接到server,除非用户在本地登录(而不是通过ssh)
      • 或者,确保网络上所有其他计算机上的sshd设置AllowAgentForwarding设置为no
        • 该联机帮助页指出这个“确实如此 除非用户也被拒绝shell访问,否则不会提高安全性,因为他们总是可以安装自己的转发器“
    • netcat和等效文件未安装在网络上的任何其他计算机上
    • sshd设置AllowTcpForwarding在网络上的所有其他计算机上设置为no
      • 该联机帮助页指出,这“没有改善 安全性,除非用户也被拒绝shell访问,因为他们总是可以安装自己的转发器“

    这可能有点多。

    也许您可以将私钥嵌入可能不会离开建筑物的硬件令牌中?但这超出了我的经验范围。

    如果您在ServerFault.com上询问,您应该得到更好的答案,并希望您的问题很快就会在那里迁移。