Hi~ Darling!

码云、Github配置ssh实现免密上传/拉取代码(共存)

本文是建立在Git已经成功安装的基础上,以下使用到的命令皆适用Mac、Linux、Windows

1. 检查是否已经存在.ssh目录

1
2
3
4
5
cd ~/.ssh
# mac、linux使用
ls
# windows使用
dir

这是我已经创建过的,一般这个文件夹是空的

如果不存在该目录,那就创建

1
mkdir ~/.ssh

2. 生成ssh key

关于ssh-keygen各参数说明看这里ssh-keygen 中文手册

1
2
3
4
# Github
ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/id_rsa_github
# Gitee
ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/id_rsa_gitee

按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_rsa_xx.pub 文件内容,获取到你的 public key

1
2
3
4
5
# windows用户将cat换成echo
#Github
cat ~/.ssh/id_rsa_github.pub
#Gitee
cat ~/.ssh/id_rsa_gitee.pub

3. 添加公钥

将第二步获取到的public key添加到Github/Gitee,注意ssh-rsa不要漏了

Github 添加公钥

Github添加公钥

Gitee 添加公钥

4. 创建配置文件

~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)

该文件主要用来解决gitee,github共存的问题

1
2
3
4
# mac、linux
vim ~/.ssh/conifg
# windows
echo ~/.ssh/conifg
1
2
3
4
5
6
7
8
9
10
11
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github

# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee

5. 测试

1
2
3
4
# GitHub
ssh -T [email protected]
# Gitee
ssh -T [email protected]

首次使用需要确认并添加主机到本机SSH可信列表。若返回Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.内容,则证明添加成功。

以Github为例

添加成功后,就可以使用SSH协议对仓库进行操作了。

#FAQ

为什么我公钥已经添加了并且测试也通过了,pull/push依然需要输入密码?

答:尝试将https地址改成ssh地址。

1
2
git remote remove xx
git remote add xx [email protected]:.....

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×