有人能指出我需要的方向,所以我可以用我的私钥所需的密码配置我的GIT客户端吗?每次我从我的存储库中推送和拉出它都会要求我输入密钥的密码.我使用命令行并安装Windows GIT客户端以使用ssh.
谢谢你的任何指示.
我刚才有这个问题.我的本地git树已损坏,因此我将其删除并再次从github克隆项目.在那之后,它开始在每次拉动或推动时询问我的密码.过了一段时间,我意识到我用HTTP URL(https://my_user@github.com/user/project.git)克隆了项目.当我使用SSH URL(git@github.com:user/project.git)再次克隆时,它停止询问密码.
跑git remote -v
.下面的输出来自通过HTTPS克隆的存储库:请注意https://
URL方案.
origin https://github.com/git/git.git (fetch) origin https://github.com/git/git.git (push)
SSH的克隆URL将具有以下两种形式之一:
username@host.domain.tld:foo/bar/baz.git
ssh://username@host.domain.tld/foo/bar/baz.git
假设您的主机同时支持SSH和HTTPS(如GitHub,GitLab和Gitorious),则只需更改远程URL,而不是重新克隆整个历史记录.
git remote set-url origin git@host.domain.com:foo/bar/baz.git
不同的主机将具有不同的URL设计.例如,将上面的GitHub URL从HTTPS切换到SSH
git remote set-url git@github.com:git/git.git
GitHub有一个关于更改git远程URL的相关指南.
在Windows上,典型的设置使用PuTTY作为SSH客户端,这意味着您将需要运行Pageant,PuTTY的SSH代理.在Windows上,我从Startup组中运行快速批处理作业:
@echo off start /b "C:\Program Files\PuTTY\pageant.exe" "C:\Users\Greg\Greg.ppk"
Greg.ppk
我用PuTTYgen创建的密钥在哪里.
还有一步:告诉git使用plink,PuTTY的客户端进行非交互式连接.将环境变量设置GIT_SSH
为
C:\Program Files\PuTTY\plink.exe
假设这是PuTTY生活的地方.
在类Unix平台上,修复很简单.如果ssh-agent
没有运行,请启动它,例如
$ eval `ssh-agent`
然后添加您的默认标识
$ ssh-add
如果您在其他地方拥有身份,请运行
$ ssh-add /path/to/other/ssh_id
如果您仍然遇到问题,GitHub会有一个用于解决GitHub和SSH问题的页面,但请同时更新您的问题,以便我们可以将其作为更有用的资源.
它可能看起来很诱人创建和注册没有密码或口令,因为你不会被提示输入其与每个SSH密钥git clone
,git fetch
,git pull
,或git push
.但是,如果没有密码,则SSH密钥未加密.这意味着,任何人谁能够获得您的私人密钥的副本(命名的文件id_rsa
,id_dsa
,id_ecdsa
-不带.pub
扩展名)可以冒充你没有努力.
SSH的漂亮设计意味着可以使操作既方便又安全.来吧,今天让您的设置安全.现在只需几分钟的额外努力,您就不必为此感到疑惑.
如果您已经设置了无密码密钥,请通过运行对其进行加密
ssh-keygen -p
对于新密码,您将看到密钥文件的提示(使用默认值),并再次确认您是否正确键入了密码.
您必须重新创建默认的ssh密钥并使用空密码.然后再将公共部分上传到git服务器.
如果没有您在客户端和服务器上使用的特定产品,则更具体一些是有点困难的.
另一种方法是使用ssh-agent,但我不知道这是否适用于Windows或类似的东西可用.