GitLab配置ssh key

  • Git可以通过https方式和ssh方式连接服务器上的仓库
  • 两者比较:
    1、https: 比较方便,但是每次fetch和push代码都需要输入账号和密码,略显麻烦
    2、ssh: 传输前压缩数据,传输效率高,不需要每次提供账号密码

一、Git的user name和email设置

git config --global user.name "xxx"
git config --global user.email "[email protected]"

二、生成密钥

  • 检查SSH key是否已经存在
ls ~/.ssh/id_rsa.pub

输出:No such file or directory。代表不存在

1、使用你注册github的邮箱生成秘钥
ssh-keygen -t rsa -C "[email protected]" 然后一路回车(-C 参数是你的邮箱地址)

.ssh目录会生成id_rsa和id_rsa.pub两个文件:id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥

2.然后会出现:Enter file in which to save the key (/Users/mm_lj/.ssh/id_rsa):
回车键
3.如果你的.ssh/id_rsa已经存在,则会出现:/Users/mm_lj/.ssh/id_rsa already exists.

Overwrite (y/n)? y

输入:y  (重新覆盖)
输入:n  (不覆盖)
4.设置密码(位数不要太短,尽量设置6位)

三、添加SSH key到github账户

两种方式:

  • 1、直接找到文件打开,然后复制


    image.png

    打开id_rsa.pub文件,然后复制里面的公钥,复制到GitLab的ssh key中去,添加key就好了。

  • 2、以下是通过命令方式查找公钥:

cd ~/.ssh
ls(查看目录是否有id_rsa.pub文件)
查看公钥:cat id_rsa.pub 

详细如下图:
image.png

获取到的那一大段,就是我们需要的ssh key,复制下来,包括前面和后面的,给到下图配置,即可完成GitLab配置ssh key


image.png

四、把ssh 添加到keychain中

如果去git clone代码,会让你输入密码,如果一个还好说,如果关联了很多的话,那就比较麻烦了,这个时候的解决方法就是将公钥添加到keychain中:

//文件路径:/Users/mm_lj/.ssh/id_rsa
ssh-add -K /Users/mm_lj/.ssh/id_rsa
//有时候会添加报错:
/usr/bin/ssh-add --apple-use-keychain --apple-load-keychain

注:.ssl 文件是隐藏的
可以用如下的方式显示:
开启显示隐藏文件:
defaults write com.apple.finder AppleShowAllFiles -bool TRUE
关闭显示隐藏文件:
defaults write com.apple.finder AppleShowAllFiles -bool FALSE

五、添加keychain成功后执行同步服务器

// 添加ip到主机列表
码云:
ssh -T [email protected]

GitHub:
ssh -T [email protected]

服务器ip:39.99.115.299
ssh -T [email protected]

输出:
The authenticity of host 'github.com (172.16.0.11)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl9E1IGOCspRomTxdCARLviKw6E6SY6.
Are you sure you want to continue connecting (yes/no)? yes

是否继续连接?输入 yes
输出如下,则表示通过
Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.

六、设置项目连接方式

  • 这里修改的是项目中 .git (隐藏)文件夹下的config文件
git remote set-url [email protected]:Demo/Demo.git
或者:
// 用的http协议,换成ssh协议
git remote set-url origin [email protected]:Demo/Demo.git

修改前:

[remote "origin"]
    url = https://39.99.115.299:Demo/Demo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

修改后:

[remote "origin"]
    url = [email protected]:Demo/Demo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

你可能感兴趣的:(GitLab配置ssh key)