Github 上的每个仓库都可以单独设置部署密钥,有别于对全部仓库都有读写权限的 SSH KEY。Deploy key 是针对特定仓库的只读权限的密钥,一个密钥只能分配给一个仓库使用。

创建 deploy key

$ ssh-keygen -f ~/.ssh/happy_repo

将 deploy key 添加到授权列表

$ ssh-add -f ~/.ssh/happy_repo

执行 ssh-add 返回错误 Could not open a connection to your authentication agent.

执行命令,启动 ssh-agent

$ eval `ssh-agent`

然后再执行一次 ssh-add -f ~/.ssh/happy_repo

查看授权列表

$ ssh-add -l

————————华丽的分割线————————

使用 ssh-add 添加专用密钥,需要每次都手动启动 ssh-agent,然后再手动将专用密钥添加到授权列表中,这样使用起来未免有些麻烦,如果不想每次都这样,可以使用 keychain 来管理这一系列动作。

安装 keychain

以 ubuntu server 为例

$ sudo apt install keychain

编辑 .bash_profile

$ nano .bash_profile

在配置文件中添加以下内容:

eval `keychain --eval ~/.ssh/happy_repo`

让配置生效

$ source .bash_profile

以后每次登录终端,keychain 都会自动加载 .bash_profile 中写入的密钥。