这可能已经在某个地方被问过,但我一生都找不到它。
我目前正在设置一台服务器机器,我想让它只有直接通过 SSH 连接到服务器并拥有授权密钥的计算机才能进入。我已经得到了可以工作的密钥,但我没有不知道我应该如何确保人们不能多跳进入服务器机器。我想知道:
- 是否可以仅通过更改服务器机器上的设置来禁用多跳?
- 如果是,我该怎么做?
- 如果没有,我还有哪些其他选择才能实现我想要做的事情?
这可能已经在某个地方被问过,但我一生都找不到它。
我目前正在设置一台服务器机器,我想让它只有直接通过 SSH 连接到服务器并拥有授权密钥的计算机才能进入。我已经得到了可以工作的密钥,但我没有不知道我应该如何确保人们不能多跳进入服务器机器。我想知道:
我不相信仅通过更改服务器上的设置是可能的。
如果您的服务器被调用server
并且网络上的另一台机器被调用aux
,那么您需要禁止以下多跳方法,可能还有其他方法:
ssh -t aux ssh server
ssh -o ProxyCommand='ssh aux /usr/bin/nc %h %p' server
ssh -N -L 2222:server:22 aux & ssh -p 2222 localhost
所以你需要确保
ssh
在您网络上的任何其他机器上运行时将拒绝连接到server
,除非用户在本地登录(不是通过 ssh)
AllowAgentForwarding
设置为no
AllowTcpForwarding
设置为no
这可能有点多。
也许您可以将私钥嵌入可能不会离开建筑物的硬件令牌上?不过,这超出了我的经验范围。
如果您在 ServerFault.com 上提问,您应该会得到更好的答案,希望您的问题很快就会被迁移到那里。