-1

这可能已经在某个地方被问过,但我一生都找不到它。

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

  • 是否可以仅通过更改服务器机器上的设置来禁用多跳?
  • 如果是,我该怎么做?
  • 如果没有,我还有哪些其他选择才能实现我想要做的事情?
4

1 回答 1

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

所以你需要确保

  • ssh在您网络上的任何其他机器上运行时将拒绝连接到server,除非用户在本地登录(不是通过 ssh)
    • 或者,确保网络上所有其他计算机上 的 sshd 设置AllowAgentForwarding设置为no
      • 手册页指出,这“不会提高安全性,除非用户也被拒绝 shell 访问,因为他们总是可以安装自己的转发器”
  • netcat 和等价物未安装在网络上的任何其他计算机上
  • sshd 设置在您网络上的所有其他计算机上 AllowTcpForwarding设置为no
    • 手册页指出,这“不会提高安全性,除非用户也被拒绝 shell 访问,因为他们总是可以安装自己的转发器”

这可能有点多。

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

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

于 2012-07-03T16:31:25.353 回答