我有服务器A和服务器B(备份),我想知道是否有人闯入服务器A,如果使用ssh公钥配置了无密码登录,闯入服务器B是否有潜在的危险?
我正在尝试设置rsnapshot。
谢谢
我有服务器A和服务器B(备份),我想知道是否有人闯入服务器A,如果使用ssh公钥配置了无密码登录,闯入服务器B是否有潜在的危险?
我正在尝试设置rsnapshot。
谢谢
Answers:
是的,这是无密码SSH密钥的问题之一。如果您在服务器A上存储允许您连接到服务器B的私钥,则获得对服务器A的访问权限实际上就是获得对服务器B的访问权限。(并非相反:获得服务器B的访问权限不会导致访问服务器B假设您还没有设置SSH密钥以允许该方向上的无密码登录,则服务器A会立即遭到破坏。
您可以采取一些措施来减轻这种情况:
authorized_keys
文件中,为每个键添加以下前缀:command="<allowed command line here>",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
8-9年前,我在与数百个本地用户共享的用户环境中工作,由于无法对密钥实施密码策略,因此基于SSH密钥的登录被禁用。只要您完全控制该方案,如今SSH密钥肯定比仅使用密码更好。
是的,Internet上的大多数指南都停止了使无密码的SSH正常工作,而不是使其安全运行。该指南很好地说明了可以减少风险的方法。基本上(引用本文):
dnssync
每台计算机上的一个用户command=
和from=
选项authorized_keys
来限制无密码密钥ssh-agent
而不是创建第二个无密码密钥ssh键有两个问题:
没有集中的方式来撤销密钥。
无法对密钥实施密码策略(您的私钥是否已加密,如果已加密,则使用正确的密码加密吗?)。
这些是kerberos解决的问题。但是,它引入了其他方面,即实施起来更加复杂,并且需要真实的用户管理基础结构来进行部署和管理。
无论如何,尽管sshauthorized_keys允许进行morris-worm类型的攻击,但它仍然比.r服务和telnet更好(以英里为单位)(光年)
在我控制的任何环境中,我一直都是真正的坚持不懈地追求服务帐户的最低特权。
在这种情况下,我建议确保仅允许远程服务器上的用户帐户运行一组严格定义的小型可执行文件。您可以在远端使用多个帐户并使用sudo来完成此操作。
即使在这种情况下,您仍然会受到本地特权升级错误的影响,因此,请务必谨慎并严格跟踪安全错误。