我有一台开发人员的机器,我设置了SSH密钥以允许他们访问服务器。 .ssh中的公钥和私钥显然对此人可见。
有没有办法保护这些钥匙?如果我不想将这些密钥复制到另一台服务器的可能性,我可以做什么吗?
默认情况下,ssh-agent在登录用户下运行,因此我可能无法取消用户对〜/ .ssh文件夹的访问权限。
谢谢, Tabrez
答案 0 :(得分:1)
您希望允许开发人员使用该密钥,但不能复制它。
为此,您可以将密钥存储在开发人员无法完全访问权限的服务器上。实现这一目标的一种方法是:
开发人员现在可以通过使用密钥管理服务器上运行的代理从第二台服务器登录到其他位置,但是他们永远无法访问任何shell或机会来检查/复制密钥管理服务器上的文件。
此解决方案的问题在于,所有开发人员的会话都通过密钥管理服务器以及第二个共享服务器进行传输。如果密钥管理服务器是远程的,这可能是一个缺点。开发人员使用它将文件(SCP或SFTP)传回本地计算机也很困难且不直观。
另一种解决方案是编写软件,在开发人员的计算机上本地创建存根SSH代理服务器,通过专用连接将SSH代理请求转发给密钥管理服务器上的真实代理。通过一些工作,您可以设置与密钥管理服务器的专用连接(我自己建议使用SSH连接)在开发人员的机器上自动启动一个简单的子shell,它在其环境中具有stub ssh代理的套接字,因此他们可以“只使用它“,这个解决方案可以非常实用,用户友好。我自己做了这个,但它超出了Stackoverflow答案的范围。