linux管理多个ssh公钥密钥

不少网上免ssh密码使用git的命令都没有考虑到多个公钥密钥的状况,这里搜集并整理一下管理多个ssh公钥密钥的步骤。linux

首先生成公钥和密钥,默认状况公钥的文件名比密钥末尾多.pub,下面以管理coding.net和github.com两个git仓库的ssh公钥密钥为例(若是是在windows下,请安装git客户端而后使用git bash来键入下面的命令;若是是在linux下,则直接使用终端便可):
ssh-keygen -t rsa -f ~/.ssh/id_rsa.coding -C “Key for coding.net”
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C “Key for GitHub stuff”git

这个命令直接经过-f参数指定了密钥和公钥的文件名,好比-f ~/.ssh/id_rsa.coding,其生产的密钥为~/.ssh/id_rsa.coding,公钥为~/.ssh/id_rsa.coding.pub,生成好了公钥和密钥后,把公钥文件中的内容追加到~/.ssh/authorized_keys文件的末尾,同理github的公钥密钥的生成方式相似。注意追加前authorized_keys文件的末尾须要有个换行符。github

ssh-rsa AAAAB3NzaC1yc2EAAaaaaaaupeyE1NMMrb121244DwhwFLsPFiFrFb1QUwQtX2m/YSi8ELn3Vga/5AhfKKPWG+nOczWZxi0XguiyAslRiiowXaUjBYei5NHHBcAy+GiZWs4u8h3ZU7uGvwmQlqHf8tQ/I0J1RNR6nQ8Ra9882398akk23h9Hhp63EagSbpkefg7qScroq0+VZ2yfLyjUCLgxhb+Eah+r9EqQ4l%HEF;asd8hLQw449W1SzKz3hCwxFAJFKbj/n+J50vNXB3fLNeTNiq@OOIkn324n802Do5jIZGFzNrYsIRFbJVbHvIsodyXDmz6Qbqlx87xmEQ== admaaa@163.com
ssh-rsa AAAAB3NzaC1yc2EAAAaa2#@8923n(&@hfg2-hg9002nkglsdfPCBUhDN185+jyoJQRwLImRr6IOwh/LSBS1N22pO#NG3434ng90u32n@0)@#NKDLHWO:@_jqtUIBr8UzWzliM5Zcn9U/DjSjuAiP/SFg1JEoXfWSFToWQpYNbGS9VFwU83MH1iGGDUeaeHY5mAMWy57ym/+Jm/hPs1I3E+OtDT9+K1RyIGr44Ur7aWpKZ/PMgiuPUc6qfGFVP4xvRw== myyyy@gmail.comwindows

同时把这个公钥添加到git仓库ssh key管理的地方,好比github是在Settings–>SSH Keys里面bash

当有多个ssh密钥须要管理时,必定要修改config文件的权限,不然你配置后仍然时无效的
touch ~/.ssh/config
chmod 600 ~/.ssh/configssh

~/.ssh/config文件的内容为:
Host github.com
IdentityFile ~/.ssh/id_rsa.github
User git
Host git.coding.net
IdentityFile ~/.ssh/id_rsa.coding
User gitpost

其中User后面的值为你访问的git ssh地址的@以前的部分,好比:git@github.com:dongritengfei/beego.git的@前面是git,因此User后面的值为git。Host就是你的git仓库的域名或者IP。测试

而后是用这个命令来测试是否配置ok
ssh -T git@github.com
Welcome to GitHub, you name!ui

若是你看到这个就说明你ok了,若是你看到下面的样子:
Bad owner or permissions on /home/admin/.ssh/config.net

那你须要执行:
chmod 600 ~/.ssh/config

而后再试试应该就能够了。

http://rongmayisheng.com/post/linux%E7%AE%A1%E7%90%86%E5%A4%9A%E4%B8%AAssh%E5%85%AC%E9%92%A5%E5%AF%86%E9%92%A5