提供者Bitbucket不提供(即使在收费的标准和高级费率中)在存储库级别存储具有写许可权的SSH密钥的可能性。 不能将个人SSH密钥存储在生产服务器上,否则,您可以从那里访问当前正在处理的所有其他项目。 有所谓的访问键,但是这些仅允许读取权限。
因此,如果您在项目上进行本地开发,然后将此仓库与具有写访问权的生产服务器集成,则有两种选择:为此您创建自己的用户(要获得许可并供5个或更多用户使用),或者可以使用它鲜为人知的SSH代理转发。
通过此过程,您可以在当前会话中的远程服务器上重用本地SSH密钥,而不必将密钥永久存储在该服务器上。 设置很简单:首先,请确保您可以使用SSH密钥直接连接到远程服务器和Bitbucket。 然后,使用eval`ssh-agent -s`在本地计算机上启动SSH代理,并使用ssh-add -k存储当前密钥。 启用代理转发后,您现在可以通过ssh -A用户名@ host1连接到远程服务器,然后访问Bitbucket存储库,而不必在此输入远程服务器的SSH密钥。
另一种选择是改用完全不同的提供商:例如, GitLab已经提供了10 GB的配额(相比之下,Bitbucket为2 GB),并且无限数量的团队成员和所谓的免费价格中的部署密钥。 这意味着可以在每个存储库中存储任意数量的其他SSH密钥(例如,来自生产服务器的SSH密钥),以授予对该存储库的写访问权限。