ssh配置git clone简易流程

时间:2021-07-05 19:51:26

1. 生成密钥

ssh-keygen -t rsa -C "jaynaruto@qq.com"

//如果只有一对密钥,建议不要修改默认的密钥名称,即一直按回车即可

此命令会在你当前用户的个人目录下(如我当前用户为savokiss,就在/home/savokiss/.ssh,root则为/root)生成一对密钥

默认的名字为id_rsaid_rsa.pub

2. 复制公钥

复制id_rsa.pub中的内容到你git服务器(gitlab,coding,github)的配置ssh公钥的地方

公钥内容类似:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2czeS+H5+dSOA1F2QyOCF126LE2cfGzCfqll73i+C61o2VrRrQAqeadELSUeUYJRZkoNmBn/4ZMV7A0ZLvIpsMsXTkpQ+dE1rUtN/D01nFEoLPABsVb0KctGOozVWKXme7WTAdzGlW8Lyc6e/oOQZ71GXbthneh8FH/NBiZH2NsbFLePeq/YoO8RLoDK9WusOYotmqLvah99KoB2jm/dZ8G3Q36fXoVAo46NRbp1mdYyjwd7k2XUylQWbeWXpxP7Plr2VPQyrOuCxCaL9dzrZkWFhhoDOlpKppDoeCN6hUiMBz/eoOMw1Wlj+wtbpWPLJqv0rNn2+pO3BrMUcIMpw== jaynaruto@qq.com

 注: 如果仅仅需要部署,将以上公钥配置到项目的 deploy key 部分即可

3. 测试连接

以coding为例:

ssh -vT git@git.coding.net

这里的-v是显示详细信息

具体会显示很长的信息提示你连接是否成功,成功的话会有一个successfully!

Hello savokiss You've connected to Coding.net by SSH successfully!

4. linux用户的问题

上面测试成功了,但是我在`/usr/share/nginx/html`中clone repo竟然还是提示我 Permission denied (publickey)

原因:

上面我用的一直都是savokiss用户,具有sudo权限,而我生成密钥的时候没有加sudo,就生成在了`/home/savokiss/.ssh`下面

但是我clone repo的目录是`/usr/share/nginx/html`,都是属于root的,所以我clone的时候只能加上sudo

就是这个sudo造成ssh自动去`/root/.ssh`下面查找`id_rsa`私钥!!!

所以我只能用sudo再生成一对密钥了。。o(╯□╰)o

5. done

步骤就这么简单,以前总是遇到问题是因为总是修改它默认的密钥名称,导致ssh在读取默认配置(id_rsa)的时候失败

简单来讲不要改它默认的名字就好!

当然如果你有多个密钥要管理,可以改,然后参考下面的文章:

refer:

多 SSH Key 管理技巧与 Git 多账户登录问题(小胡子哥)