无法使用SSH密钥从远程服务器访问bitbucket,以对存储库中的最新代码执行git pull

时间:2019-01-06 04:30:26

标签: git ubuntu-16.04 ssh-keys

我正在尝试使用git pull命令将bitbucket上的最新代码提取到开发(Ubuntu)服务器中。 git pull命令尝试通过SSH连接以root用户身份访问bitbucket,但还要求提供与SSH相关的释义。 Ubuntu服务器上的root / .ssh文件夹包含id_rsa和id_rsa.pub文件,但是我无法将id_rsa.pub中的公共密钥添加到bitbucket,因为显然该密钥正在被其他人使用。我也不知道与此SSH密钥有关的释义。有几个问题:

  1. 当我无法将SSH公钥添加到bitbucket时,远程服务器如何通过SSH连接到bitbucket存储库?
  2. 我是否应该在Ubuntu服务器中创建一个新的SSH密钥,并尝试将其(公共密钥部分)添加到bitbucket,然后使用新密钥访问bitbucket?
  3. 如果我在输入git pull命令后没有服务器不断提示我输入的含义,从存储库中提取代码的最佳方法是什么?以下是一些我可以想到的内容,但请您欣赏有关最佳方法的指导:

A)创建新的SSH密钥(有或没有释义,尽管我认为使用释义更安全),将新的公钥添加到bitbucket,然后尝试通过SSH从bitbucket中提取代码。我认为服务器仍会尝试以root用户而不是我用于登录服务器的用户名访问bitbucket。当然,这当然需要我首先获得对/ root和/root/.ssh文件夹的读写执行特权(在我的服务器上,我已经禁用了root用户的登录能力)。

B)使用现有的SSH密钥(如上所述,我无法将其添加到bitbucket)以其他用户(不是root用户,但也许是我用来登录Ubuntu服务器的用户名)访问bitbucket。为了使用这种方法从bitbucket存储库中提取代码,我是否首先必须在Ubuntu服务器上的主目录(/home/myusername/.ssh)下设置SSH密钥?

1 个答案:

答案 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帐户,并对该帐户使用单独的密钥。