Git生成ssh公钥、免密登录
Git支持https和ssh两种传输协议,Github分享链接时会有两种协议可选:
- Clone with SSH
- Clone with HTTPS
Git在使用https协议的时候,每次pull、push都会提示要输入密码
使用ssh协议,这样可以免去在执行pull和push的时候都要输入密码的麻烦
使用ssh协议大致可以分为是三个步骤
- 生成密钥对
- 设置远程仓库上的公钥
- 把git的remote url修改为ssh协议
一、生成密钥对
绝大多数的git服务器都会选择SSH公钥来进行授权;
系统中的每一个用户都必须提供一个公钥用于授权,没有的话就必须要生成一个;
生成公钥的过程在所有的操作系统上的方式都大致一样;
首先确定自己本地是否已经有了公钥;
SSH公钥默认存储在用户主目录下的.ssh 目录中
1、查看文件夹下的文件是否包含id_rsa和id_rsa.push(或者是id_das和id_das.pub一类成对的文件),其中有.pub后缀的文件就是公钥,另一个对应的就是密钥
[root@localhost huashan]# cd ~/.ssh
[root@localhost .ssh]# ls
known_hosts
2、如果没有这些文件,甚至连.ssh目录都没有,可以用ssh-keygen来创建
[root@localhost .ssh]# ssh-keygen -t rsa -C 邮箱 ///创建密钥
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ///回车默认值
Enter passphrase (empty for no passphrase): ///回车默认值
Enter same passphrase again: ///回车默认值
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:bsr9ADxExWgPCuS9W3dAedpF9irrGem1fuHVHFIklYw 邮箱
The key's randomart image is:
+---[RSA 2048]----+
| .<