最近使用git时,需要使用到公司和个人两个ssh key,因为在winows系统下,进行了自定义.ssh目录(非用户目录下),在配置config文件时,一直没有生效,所以进行了一些分析,记录一下。
ssh的配置文件
ssh client有两个配置文件,/etc/ssh/ssh_config和~/.ssh/config,前者是对所有用户,后者是针对某个用户,两个文件的格式是一样的。
当有多个git账号时,比如:
a. 一个gitee,用于公司内部的工作开发;
b. 一个github,用于自己进行一些开发活动;
解决方法
生成一个公司用的SSH-Key
$ ssh-keygen -t rsa -C 'xxxxx@company.com' -f ~/.ssh/gitee_id_rsa
- 生成一个github用的SSH-Key
$ ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/github_id_rsa
- 在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
4.用ssh命令分别测试
$ ssh -T git@gitee.com
$ ssh -T git@github.com
这里以gitee为例,成功的话会返回下图内容
因此,在我迁移用户目录下.ssh目录的时候,config配置实际上已经是系统配置,需要配置在/etc/ssh/ssh_config中方可生效。
版权声明:本文为优快云博主「蓝色多瑙河SF」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/u012480379/article/details/117993104