Mac下sshkey的配置,主要配置是为了让本地和远端可以连接,可以pull,push。
1 Mac下单个ssh key设置
- 1 检查ssh key 是否存在
ls -al ~/.ssh
Lists the files in your .ssh directory, if they exist
如果key存在,会有 id_rsa 和 id_rsa.pub可以直接将key复制到远程GitHub上。
- 2 如果key不存,生成key
在命令行中输入
ssh-keygen -t rsa -C "your_email@example.com"
密码,名称什么的都一路回车就OK了
- 3 将共有key(id_rsa.pub)复制到远程GitHub里,同是可以给你的key起一个名字
2 Mac下多个ssh key 设置
为什么要在Mac下设置多个key呢?
说白了我就是为了玩,首先办公的时候需要有一个ssh key 这个可能是公司办公用的,另外如果你有自己的git账户,commit一些代码的话你需要有一个自己的ssh key。
怎么设置多个key呢?
- 1 和单个key的设置一样当然不是检查是否存在key了,哥们这个时候肯定已经有了。生成key,这个时候需要注意了,不是一路狂按,设置好你的key的名称
结果如图:
- 2 添加新的ssh key 到ssh agent 因为默认只读 id_rsa
ssh-add ~/.ssh/id_rsa_yuxi
-
3 将不同的账号对应的不同的ssh key 和不同的远程服务器关联起来,这个配置是在config下配置的(如果没有config可以自己新建)。
结果如图:
其规则就是:从上至下读取config的内容,在每个Host下寻找对应的私钥。这里将GitHub SSH仓库地址中的git@github.com替换成新建的Host别名如:github2,那么原地址是:git@github.com:username/Mywork.git,替换后应该是:github2:username/Mywork.git.
上面是我查资料看到的,具体原因我也不是很清楚,但是我理解就是做了一个域名的映射。
- 4 将id_rsa.pub 上传到GitHub上
vim ~/.ssh/id_rsa_yuxi.pub
可以测试一下是否成功,方法如下:
ssh -T git.oschina.net
3 常见问题处理
经常与会遇到下面这种情况,我也很纳闷,每次都解析到不到域名和地址
ssh: Could not resolve hostname git.oschina.net: nodename nor servname provided, or not known
查资料之后的解决办法是:
step1. ping address
获取到对于地址的ip
step2. 在/etc/hosts中添加一行如下:
ip address
这样就可以玩起来了。