目录



  • 一、生成ssh key
  • 1.1 生成密钥(必须)
  • 1.2 设置路径 (可选)
  • 1.3 指定密语字符串(可选)
  • 二、设置ssh key的代理
  • 2.1、 首先查看代理
  • 2.2、 添加私钥
  • 三、添加公钥
  • 四、添加和编辑配置文件config
  • 五、测试


需求:一台电脑上(Mac os)管理多个ssh key,可以任意切换,达到多用户(账号)使用不同ssh提交代码。

以下利用bitbucketgithub账号来做例子。

一、生成ssh key

1.1 生成密钥(必须)

ssh-keygen -t rsa -C "youremail@yourcompany.com"

注解:

  • 密钥类型可以用 -t 选项指定。如果没有指定则默认生成用于SSH-2的RSA密钥。这里使用的是rsa
  • 同时在密钥中有一个注释字段,用-C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行
  • 若一路回车(密码可以不写),这样只会在~/.ssh/ 目录下生成 id_rsa 和 id_rsa.pub 两个文件

1.2 设置路径 (可选)

为了区分,我们在第一个回车后设置路径,进行第二步

id_rsa_bitbucket
id_rsa_bitbucket.pub

id_rsa_github
id_rsa_github.pub

如何管理不同主机上个的容器_github

1.3 指定密语字符串(可选)

  • 输入完毕后程序同时要求输入一个密语字符串(passphrase),空表示没有密语。接着会让输入2次口令(password),空表示没有口令。3次回车即可完成当前步骤,此时[~/.ssh]目录下已经生成好了。
  • 建议输一个,安全一点,当然不输也行,应该不会有人闲的无聊冒充你去修改你的代码

如何管理不同主机上个的容器_github_02


完了之后,大概是这样:

如何管理不同主机上个的容器_如何管理不同主机上个的容器_03

到此为止,你本地的密钥对就生成了。

二、设置ssh key的代理

2.1、 首先查看代理

ssh-add -l

若提示 

Could not open a connection to your authentication agent.

则系统代理里没有任何key,执行如下操作

exec ssh-agent bash

若系统已经有ssh-key 代理 ,可以删除

ssh-add -D

2.2、 添加私钥

ssh-add ~/.ssh/id_rsa_bitbucket
ssh-add ~/.ssh/id_rsa_github

三、添加公钥

在对应的github的ssh管理页面,添加对应的公钥(.pub 文件内容),保存到代码管理服务器。

四、添加和编辑配置文件config

~/.ssh 目录下新建一个config文件

touch ~/.ssh/config

添加内容

# git@bitbucket.org
Host bitbucket.org
    HostName bitbucket.org
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github/id_rsa_bitbucket
    User git

# git@github.com
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_github
    user git

当然也可以利用nano命令来创建和编辑

nano ~/.ssh/config

如此,ssh就会根据登陆的不同域,来读取对应的私钥文件

五、测试

ssh -T git@github.com

若出现

Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.

则表示成功。

若出现

permission denied (publickey)

请检查github的ssh管理里添加的公钥是否正确。