linux下配置多账户公钥要在~/.ssh目录下新增config文件。
config配置如下:
其中重要的是:
- host:本地映射主机名
- hostname:远程主机名
- identityfile:公钥
比如在上图所示的config文件中,将coding.net指向coding.net,将basketball.net也指向coding.net,但是两个host配置的公钥是不同的。
对不同账户的git项目下/.git/config文件进行相应的配置。
比如test1用户使用id_rsa公钥,test2用户使用id_rsa_basketball公钥。
对test1用户需配置项如下:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@coding.net:test1/test.git
对test2用户需配置项如下:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@basketball.net:test2/test.git
然后执行git的pull操作,两个账户的项目均可以操作。此时,已经达到我们要实现的多账户公钥配置目的。
需要注意的是,在第一次进行git的pull操作的时候,会提示你是否在~/.ssh目录下生成known_hosts文件。known_hosts文件是记录每次ssh在链接远程服务器的时候,远程服务器给出的host key。当下次链接的时候,ssh会自动检测改host key是否正确。