在单个PC中为github和bitbucket添加SSH密钥

kab*_*aye 9 github bitbucket

是否可以在个人计算机中同时使用github和bitbucket repo.

如果没有,让我知道任何其他可能性.

提前致谢.

Haf*_*man 10

在单台 PC 上为 github 和 bitbucket 添加 SSH 密钥的完整指南

如果您已经有一个 ssh 密钥,那么 .ssh 文件夹中必须有 2 个文件 public(id_rsa.pub) 和 Private key(id_rsa) 您可以跳过第2 步

步骤 1. 在执行步骤 2 和步骤 3 之前准备两个帐户所需的默认身份

确定您的 Git 克隆 URL。$ git 远程 -v

origin git@bitbucket.org:teamsinspace/bitbucketspacestation.git (fetch)
origin git@bitbucket.org:teamsinspace/bitbucketspacestation.git (push)
Run Code Online (Sandbox Code Playgroud)

将 git@bitbucket.org 替换为<username>@bitbucket.org. 对于此步骤和后续步骤,请输入您的用户名代替 。

$ git Remote set-url 原点<username>@bitbucket.org:teamsinspace/bitbucketspacestation.git

步骤 2:使用默认名称 (id_rsa) 创建第一个 ssh 密钥

$ssh-keygen

您将看到以下文本:

Generating public/private RSA key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Run Code Online (Sandbox Code Playgroud)

您可以输入密码来保护您的文件,也可以按 Enter 键完成所有步骤,然后它将创建一个 ssh 密钥。

继续按 Enter 键后

默认情况下,系统将所有身份的密钥添加到/Users/<username>/.ssh目录中

您可以通过以下命令检查已经存在的 ssh 密钥

$ls ~/.ssh

id_rsa  id_rsa.pub      
Run Code Online (Sandbox Code Playgroud)

应该有两个文件,第一个具有密钥名称 (id_rsa) 私钥,第二个具有相同的 (ir_rsa.pub) 公钥。

您可以在主目录中打开使其可见,ctrl + h 然后它将显示

在此输入图像描述

其次,创建您已知的主机文件(如果您还没有)

要创建您已知的主机文件- touch known_hosts

第 3 步:设置多帐户 ssh

3.1:使用默认名称创建第二个密钥

您可能正在使用一对 SSH 密钥来处理公司的内部项目,但现在您可能需要不同的密钥来访问客户端的服务器,以便您可以创建密钥

通过再次运行相同的命令,ssh-keygen它将创建第二个 ssh 密钥文件,其名称为 [ id_rsa2 and id_rsa2.pub ]

3.2:使用自定义名称创建第二个密钥

ssh-keygen -f NAME_OF_YOUR_KEY

$ssh-keygen -f work_key它将创建 2 个文件 [ work_key, work_key.pub ]

如果想一次运行一个键,那么您可以在连接到该存储库进行 pull 和 push 之前使用此命令。

ssh-add -K ~/.ssh/YOUR_KEY_FILE
Run Code Online (Sandbox Code Playgroud)

ssh-add -K ~/.ssh/work_key

第 4 步:同时设置两个帐户

您想同时设置两个帐户,则必须使用以下命令

第三创建您的配置文件要创建您的配置文件 touch config或直接在任何文本编辑器中打开,

以下是一个 Github 和一个 Bitbucket 帐户的示例

Host :您的 ssh 设置的名称,您可以指定自定义名称 HostName :github 域或 bitbucket 域 IdentityFile :您的 ssh 文件的路径

#Work account 
Host pers 
    HostName github.com 
    User git 
    IdentityFile ~/.ssh/id_rsa 
    UserKnownHostsFile ~/.ssh/known_hosts 
    IdentitiesOnly yes

#Personal account 
Host work 
    HostName bitbucket.org 
    User git 
    IdentityFile ~/.ssh/work_key 
    UserKnownHostsFile ~/.ssh/known_hosts 
    IdentitiesOnly yes

Run Code Online (Sandbox Code Playgroud)

第 5 步:将您的公钥添加到 Bitbucket 或 Bitbucket 的 github 帐户在此输入图像描述 对于 Github [转到您的帐户设置 -> SSH 和 GPG 密钥] 在此输入图像描述

第 6 步:永久添加您的公众

ssh HOST(我们在配置文件中编写的内容)就像 ssh work

如果您遇到此错误,请确保您正确执行了步骤 4。

git@bitbucket.org: Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)

或者也可以用这种方式

现在你可以使用

git clone `git@pers/project.git`
Run Code Online (Sandbox Code Playgroud)
git clone `git@work/project.git`
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

第7步:自动选择我们请求的域名

一旦您需要使用第二个密钥,管理 SSH 密钥就会变得很麻烦。传统上,您将使用 ssh-add 将密钥存储到 ssh-agent,输入每个密钥的密码。问题是每次重新启动计算机时都需要执行此操作,这很快就会变得乏味。

如果您只有两个帐户,一个在 github 中,一个在 bitbucket 中,您可以使用以下方法自动按我们要求的域名进行选择

#Work account 
Host github.com  
    HostName github.com 
    User git 
    IdentityFile ~/.ssh/id_rsa 
    UserKnownHostsFile ~/.ssh/known_hosts 
    IdentitiesOnly yes

#Personal account 
Host bitbucket.org 
    HostName bitbucket.org 
    User git 
    IdentityFile ~/.ssh/work_key 
    UserKnownHostsFile ~/.ssh/known_hosts 
    IdentitiesOnly yes

Run Code Online (Sandbox Code Playgroud)

这是进一步指导的链接

https://www.freecodecamp.org/news/the-ultimate-guide-to-ssh-setting-up-ssh-keys/ https://support.atlassian.com/bitbucket-cloud/docs/set-up-附加 ssh 密钥/


Set*_*day 5

是的。您通过每个存储库配置文件告诉git远程代码在哪里。如果愿意,您甚至可以从同一存储库推送到GitHub和Bitbucket。

详情请参阅这里:http : //blog.lckymn.com/2013/03/11/git-push-to-pull-from-both-github-and-bitbucket/

一个重要的方面是使用SSH分别连接到每个。

您的SSH密钥应该存在,$HOME/.ssh并且可以包含任意数量的密钥。SSH密钥的默认名称为id_rsa(或类似名称,具体取决于创建它的协议)。

尝试做:

ls $HOME/.ssh
Run Code Online (Sandbox Code Playgroud)

...看里面有什么。

我做的是您对自己的询问,对我来说,这会引起类似以下问题:

github-personal
github-personal.pub
bitbucket-work
bitbucket-work.pub
known_hosts
Run Code Online (Sandbox Code Playgroud)

其中known_hosts是包含我连接到服务器,并与他们相关的公共密钥列表的文件。结尾的其他文件.pub是我自己的公钥,其余文件是我的私钥。

您可以通过遵循相应的教程将GitHub和Bitbucket密钥插入其中: