我把我的工作推到一个远程git存储库。

每次推送都会提示我输入用户名和密码。我想避免它的每一个推送,但如何配置以避免它?


当前回答

1. 生成SSH密钥

Linux -麦克

打开终端创建ssh密钥:

cd ~                 #Your home directory
ssh-keygen -t rsa    #Press enter for all values

对于Windows

(只有当提交程序能够使用证书/私有和公共ssh密钥时才有效)

使用Putty Gen生成密钥 导出为打开的SSH密钥

下面是关于上述步骤的腻子生成的演练

2. 将SSH密钥与远程存储库关联

这一步不同,取决于遥控器的设置方式。

如果它是一个GitHub存储库,你有管理权限,进入设置并单击“添加SSH密钥”。复制~/.ssh/id_rsa的内容。pub到标记为“Key”的字段中。 如果您的存储库是由其他人管理的,请将您的id_rsa.pub交给管理员。 如果您的远程存储库由您的管理,您可以使用此命令,例如: scp ~ / . ssh / id_rsa。酒吧YOUR_USER@YOUR_IP: ~ / . ssh / authorized_keys / id_rsa . pub

3.将远程URL设置为支持SSH 1的表单

如果您已经执行了上述步骤,但仍然得到密码提示,请确保表单中有您的回购URL

git+ssh://git@github.com/username/reponame.git

而不是

https://github.com/username/reponame.git

要查看您的回购URL,运行:

git remote show origin

你可以用以下方法更改URL:

git remote set-url origin git+ssh://git@github.com/username/reponame.git

[1]本节结合了Eric P的答案

其他回答

第一步-

使用以下命令在linux系统上创建SSH密钥

ssh-keygen -t rsa -b 4096 -C "your_email"

它将询问密码短语和文件名(默认为~/)。ssh / id_rsa ~ / . ssh / id_rsa . pub)

步骤2 -

一旦文件创建,添加公钥id_rsa。Pub到github帐户SSH部分。

第三步-

在您的机器上,使用以下命令将私钥id_rsa添加到ssh-agent

ssh-add ~/.ssh/id_rsa 

步骤4 -

现在使用以下命令将远程url git@github.com:user_name/repo_name.git添加到本地git repo中。

git remote remove origin
git remote add origin git@github.com:user_name/repo_name.git

这是它。

我使用的是https链接(https://github.com/org/repo.git) 而不是SSH链接;

git@github.com:org/repo.git  

转换为我解决了这个问题!

你必须设置一个SSH私钥,你可以看看这个页面,如何在Mac上进行设置,如果你在linux上,指南应该是差不多的,在Windows上你需要像MSYS这样的工具。

我在Windows上的解决方案:

右键单击目录,并选择“Git Bash Here”。 ssh-keygen -t rsa(所有值都按enter键) 您的公钥已保存在/c/Users/<your_user_name_here>/.ssh/id_rsa.pub 从指定文件复制公钥。 去你的GitHub配置文件=>设置=> SSH和GPG密钥=>新的SSH密钥=>粘贴您的SSH密钥=>保存

运行下面的命令为我解决了这个问题。

git config --global credential.helper wincred

请参考以下github文档:

https://help.github.com/articles/caching-your-github-password-in-git/