我个人习惯是凡SSH的都独自一对密钥,GPG同理。所以切换github、gitee等各种账号的时候就需要经常修改配置文件。
首先,确认自己github/gitee配置了SSH和GPG公钥
git config --list
# 至少要有下面几条,最后一条不是必须的
user.name=XXXXXXXX
user.email=YYYYYYY@gmail.com
user.signingkey=ZZZZZZZZZZZZ
commit.gpgsign=true
上面这些可以自己通过配置文件配置
cat ~/.gitconfig
[user]
# github-XXXX
name = XXXX
email = TYYYYY@153.com
signingkey = asdnankdakndk
# .....省略其他内容
[commit]
template = /Users/ashiamd/.stCommitMsg
gpgsign = true
切换github/gitee账户的ssh和gpg,就只要修改上述~/.gitconfig
文件,然后执行下面两个主要流程
- SSH部分
查找 ssh-agent进程,然后kill,保证等下添加的ssh认证信息是对应的用户
结果如下ps aux |grep 'ssh-agent'
杀死 PID为2685的进程ashiamd 2685 0.0 0.0 4309300 2404 ?? S 4:04下午 0:00.02 /usr/bin/ssh-agent -l ashiamd 3226 0.0 0.0 4399480 792 s000 R+ 4:09下午 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox ssh-agent
查看现有的ssh密钥对,ssh添加用户(隐私问题,把文件名都改了)kill 2685 ps aux |grep 'ssh-agent' ashiamd 3283 0.0 0.0 4399480 792 s000 R+ 4:10下午 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox ssh-agent
查看是否多出来ssh-agent,有就正常ls ~/.ssh AAA BBB CCC known_hosts AAA.pub BBB.pub CCC.pub DDD EEE FFF GGG DDD.pub EEE.pub FFF.pub GGG.pub config HHH III gitconfig-copy HHH.pub III.pub ssh-add ~/.ssh/AAA
ps aux |grep 'ssh-agent' ashiamd 3785 0.0 0.0 4399480 792 s000 R+ 4:15下午 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox ssh-agen ashiamd 3765 0.0 0.0 4300084 2280 ?? S 4:15下午 0:00.01 /usr/bin/ssh-agent -l
- GPG部分
同样杀死gpg-agent
然后执行下面这条,之后git commit会要求输入密码(GPG生成密钥时输入过的)ps aux |grep 'gpg-agent' ashiamd 2618 0.0 0.0 4468668 1616 ?? Ss 4:03下午 0:00.32 gpg-agent --homedir /Users/ashiamd/.gnupg --use-standard-socket --daemon ashiamd 4710 0.0 0.0 4399480 804 s000 S+ 4:18下午 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox gpg-agen kill 2618
ps:如果不小心在输入密码的时候按了export GPG_TTY=$(tty)
ctrl+C
,会发现没法正常输入密码了,这时候记得关掉当前terminal然后杀死对应的进程。
这个时候会看到一个CPU跑了90%多的进程,kill它就对了,然后重新export GPG_TTY=$(tty)
top