只允许代理转发中的特定密钥?

dgo*_*o.a 7 ssh ssh-keys ssh-agent

是否可以使用代理转发排除所有密钥的转发,特别说明的除外?或者,是否有任何方法可以指定每个会话尝试密钥的顺序?

使用ssh-agent需要管理不同的套接字:https : //superuser.com/questions/357602/use-a-specified-key-from-ssh-agent/401737#comment396923_358604

有没有更容易配置的替代代理?

例如:

Client A -->  ssh/agent-forwarding --> Server B -->  Server C 
                                            | 
                                            ------>  Server D 
Run Code Online (Sandbox Code Playgroud)

我想在代理转发中只允许一个键,允许:A -> B -> C,而不是A -> B -> D。或者至少指定尝试密钥的顺序。

(在@jeff-ferland 回答之后为清晰起见进行了编辑。)

Jef*_*and 1

我不知道有任何代理允许按照您的图表选择性转发密钥。一旦密钥被转发到主机,就好像它存储在本地一样,并且可以用于对来自那里的任何主机进行身份验证。

从另一个层面来看你的问题,我对你可能想做的事情有两个想法:

  • 防止某人在没有实际存在于某个位置的情况下向某些主机进行身份验证。

如果这是您的目标,则无法通过控制身份验证密钥来实现它。您必须通过体系结构和主机限制来控制访问,以便任何可远程访问的主机都无法访问“安全”主机。

  • “保护”某些密钥,使其不被暴露。

如果这是您的目标,那么这是对如何保护密钥的误解。密钥本身永远不会被转发。访问 ssh 代理以根据密钥进行身份验证的能力被转发。但是,只有在转发到位时,并且只有当您将代理转发到的计算机由不可信的管理员运行(自愿或通过妥协)时,才能利用该转发。因此,在您的图中,除非您成功从计算机 B -> D 登录从 A -> B -> D 导出转发,否则您不会面临暴露凭据的风险。如果您信任 B,则可以安全地从 A -> B 转发。

如果您仍然不清楚这个概念,我建议您阅读关于转发如何使用图表的非常详细的解释。