我正在尝试使用git pull命令将bitbucket上的最新代码提取到开发(Ubuntu)服务器中。 git pull命令尝试通过SSH连接以root用户身份访问bitbucket,但还要求提供与SSH相关的释义。 Ubuntu服务器上的root / .ssh文件夹包含id_rsa和id_rsa.pub文件,但是我无法将id_rsa.pub中的公共密钥添加到bitbucket,因为显然该密钥正在被其他人使用。我也不知道与此SSH密钥有关的释义。有几个问题:
A)创建新的SSH密钥(有或没有释义,尽管我认为使用释义更安全),将新的公钥添加到bitbucket,然后尝试通过SSH从bitbucket中提取代码。我认为服务器仍会尝试以root用户而不是我用于登录服务器的用户名访问bitbucket。当然,这当然需要我首先获得对/ root和/root/.ssh文件夹的读写执行特权(在我的服务器上,我已经禁用了root用户的登录能力)。
B)使用现有的SSH密钥(如上所述,我无法将其添加到bitbucket)以其他用户(不是root用户,但也许是我用来登录Ubuntu服务器的用户名)访问bitbucket。为了使用这种方法从bitbucket存储库中提取代码,我是否首先必须在Ubuntu服务器上的主目录(/home/myusername/.ssh)下设置SSH密钥?
答案 0 :(得分:0)
当我无法将SSH公钥添加到bitbucket时,远程服务器如何通过SSH连接到bitbucket存储库?
初始化与Bitbucket的连接时使用SSH握手协议,这涉及确定可以使用哪个密钥。在这种情况下,将尝试root / .ssh中的每个密钥,当Bitbucket接受每个密钥时,将建立一个连接(您可能有一个root / .ssh / config,该状态指出要使用哪个密钥,然后只有被使用)
SSH密钥与Bitbucket上的单个帐户(1-1关系)相关联,并且在给定SSH密钥时(通过握手过程),Bitbucket知道要使用哪个帐户。显然,有人已经在使用此密钥。
我应该在Ubuntu服务器中创建一个新的SSH密钥,然后尝试将其(公共密钥部分)添加到bitbucket,然后使用新密钥访问bitbucket吗?
是的,对于应从开发服务器访问Bitbucket的Bitbucket帐户,您至少需要一个密钥。
如果我没有这样的表述,即服务器在键入git pull命令后一直提示我输入,那么从存储库中提取代码的最佳方法是什么?
不清楚您为什么使用root来访问Bitbucket,但如果可能的话,我将在自己的主目录/home/myusername/.ssh
中拥有自己的密钥(并在服务器上拥有我自己的远程存储库的副本)。
我假设root正在运行一些涉及从Bitbucket提取的任务,那么您可以为其创建一个单独的Bitbucket帐户,并对该帐户使用单独的密钥。