从同一台终端分别向Gitcafe不同帐号Push的方法
需求
拥有多个不同内容的个人静态站点(均使用Hexo),各自拥有独立域名,希望托管在gitcafe上操作:gitcafe的每一个帐号可以开设一个静态页面的站点(gitcafe pages服务)
操作
申请了多个gitcafe的id,且每一个id都开设了gitcafe pages进行deploy的时候希望通过ssh密钥验证的方式,所以在每个id的gitcafe的设置里都需要设定ssh公钥。可能是出于安全的考虑,在gitcafe里即使是不同的id也不允许使用相同的公钥所以我为每一个id都生成了一对专用的公钥和私钥(文件名不同,均放置在~/.ssh/下面)
问题
当我利用hexo进行deploy的时候,只有其中一个站点能成功deploy,其他几个均报错提示用户AAA没有push到BBB账户的权限!
Error: PERMISSION DENIED: User AAA can’t write to BBB/BBB.
分析
虽然为每个账户都生成了独立的私钥密钥,但是ssh连接的时候,ssh客户端并不知道针对不同用户id应该使用哪个私钥。那么就需要在每一次deploy之前明确告诉接下来的ssh连接要使用的私钥。
解决
ssh-agent可以在其生命周期内使用指定的密钥文件。在hexo deploy之前指定,deploy结束后退出ssh-agent即可。(退出以后再进入需要重新指定)
新建一个sh文件,代码如下。
1 | #! /bin/bash |