Agent admitted failure to sign using the key.
git@git.oschina.net 's password:
Permission denied, please try again.
git@git.oschina.net 's password:
Permission denied, please try again.
git@git.oschina.net 's password:
Permission denied (publickey,password,keyboard-interactive).
fatal: Could not read from remote repository.
原因是ssh-agent服务没把新产生的/home/you/.ssh/id_rsa 包含进去,解决方法如下:
eval "$(ssh-agent -s)"
ssh-add
如果你的私钥文件已经改名,不是默认的id_rsa,请输入你的正确的私钥文件路径:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/my_other_key
git支持https和git两种传输协议,github分享链接时会有两种协议可选,如果使用https协议,每次pull, push都会提示要输入密码,如果使用git协议,然后使用ssh密钥,这样免去每次都输密码的麻烦。
Git服务器都会选择使用SSH公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。生成公钥的过程在所有操作系统上都差不多。
1.生成密钥对
如果没有对应的文件,可以用ssh-keygen来创建
然后,会提示你输入密码,如下:
设置好之后,如下
到此为止,你本地的密钥对就生成了。
2.将SSH Key添加到ssh-agent
可以查看ssh-agent中的密钥,检测是否添加成功
还可以从ssh-agent中删除多余的密钥
3.添加公钥到你的远程仓库(如github)
4 验证下新增的key是否有生效
如果看到如下
恭喜你,你的设置已经成功了
git协作开发,不是以用户名和密码的方式.根据git所使用的协议,如果是ssh 那么方式就应该为 git@youdomain.com:xxxxxx.git的方式,如果是这样,那么配置了公钥那么就可以直接访问了,不需要用户名和密码,如果是http/https的方式,那么验证的就是你登陆的用户名和密码,著名的gitlab 可以同时使用这两种方式,不需要你亲自去配置 ,详见 :http://about.gitlab.com
sharyuke
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)