SSH
作弊条:SSH 的 ProxyJump 跳板服务
问题
有些环境中,SSH 服务器可能无法从 Internet 直接访问(例如,SSH 服务器可能使用的是一个私有 IP 地址,或是 Internet 服务提供商没有提供 IPv6 服务,而 SSH 服务器只提供 IPv6 服务)。
考虑到 SSH 已经进行了相互认证(连接时客户端会验证服务器的公钥是否与已知公钥,例如 ~/.ssh/known_hosts
,
或是通过 DNSsec 发布的 SSHFP
RR 匹配;服务器端则会验证用户是否能证明自己拥有与授权公钥对应的私钥),
因此比较常见的解决方法便是使用 VPN、在防火墙上穿孔,或是使用代理服务器。
由于 SSH 自身也提供了许多转发功能,因此如果中间的跳板服务器也提供 SSH 服务, 便可以使用这些跳转服务器直接作为代理服务器来用。与前面那些传统方法相比, 这样做的优点是避免了安装额外的软件,也不需要特别指定端口。
阅读全文…用 FIDO key 来做 SSH key
OpenSSH 8.2 中新增了 FIDO/U2F 支持。
它支持两种密钥对类型: ecdsa-sk
和 ed25519-sk
。需要注意的是并非所有的 FIDO Security Key
都实现了 ed25519-sk
的硬件支持:例如,截至2022年,Titan Security Key
就不支持 ed25519-sk
。
使用 FIDO key 的 SSH key 在使用上和之前的 SSH key 类似, 主要的区别在于在登录时系统会确认用户是否在机器旁边(通常是碰一下 FIDO key), 这可以显著地改善安全性:与之前的 SSH key 不同的是, 即使机器上的 U2F/FIDO SSH key 私钥文件被攻击者获得, 在没有硬件 FIDO key 的情况下也无法使用这个私钥。 对于对方同时能获得私钥文件和物理访问的情况, 参见 xkcd/538,就不要跟扳手过不去了。
阅读全文…