使用git pull等命令时,总会被要求输入密码,但是我记得明明已经把主机ssh公钥加入个人配置中:真正的原因是:虽然已经把ssh公钥加入了个人配置,但是如果git clone时使用的是非ssh协议(比如http协议),就会出现这种问题。
解决方案很简单:
保证git clone时采用ssh协议即可。
即使用 git clone ssh://...../..../ ,
不能用这种方式 git clone http://......./..../
补充一下正常配置 ssh 主机公钥的方法:
1、首先确认本机中已经生成ssh公钥
cd ~
ls ~/.ssh #即确认用户主目录下是否有.ssh文件夹存在即可。
2、生成ssh公钥,步骤如下
jie@jix:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jie/.ssh/id_rsa):
Created directory '/home/jie/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jie/.ssh/id_rsa.
Your public key has been saved in /home/jie/.ssh/id_rsa.pub. #即为公钥
The key fingerprint is:
SHA256:cQQG/HAXCcy9jkK0sCz23lWAkCjr+F2npfimxlZUhp8 jie@jix
The key's randomart image is:
+---[RSA 2048]----+
| ..+.*++oo |
|. . o *.B.+ |
| o . + O.+.. |
|. o o + Eoo |
|o. o o S+ |
|.. . + = . |
| . + = B |
| . B = |
| o.+. |
+----[SHA256]-----+
在用户主目录下.ssh文件夹下会生成两个文件
jie@jix:~$ cd ~/.ssh/
jie@jix:~/.ssh$ ls
id_rsa id_rsa.pub
其中id_rsa.pub即为生成的ssh公钥文件,其中的内容是如下:
jie@jix:~/.ssh$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDx2uL3m2iYOAh/0IGESYAznWp8/XEss2CnKd/R4wF1GLdK4lDR1E9pmWbQwGeWq1TZlLX+lYvdms/1U9y/YSOjIOLzmRIh5kKW9kS8xN+3g7/JJcw4Ooa2PTd5HSMOAjpp5PKNIDpDWfKrkaZCEwWHhR8CqLl+2rqRhtFqtOtKc7II0zK5LTRTf3QGRNGvfnBTl/CmSIOPdG7eDj3d6tqBNS9C//M+7BHr3zwS7kJdgJyEtnPY69PvkgXybRdZ6hAcWjpUW77iIcan4rObnHLPidOOsren+vd9FVqwO5yDLpBsxa5axcZFbglylYEHRLHewsWC+kPOegQ/4YA2XbOP jie@jix
生成公钥后,将公钥加入个人配置即可,以github为例,说明如何添加ssh公钥
登陆 github: https://github.com/ 输入用户名/密码登陆
下面一图胜千言