Eth*_*anZ 6 git proxy github username
要求可能很奇怪.但有时我真的需要这个功能.好的,这就是事情,我总是在代理之后工作.无论是在办公室我使用公司代理还是在家里我也使用VPN和代理(你知道,我在中国,所以我希望你能理解).
通常我使用git协议来连接github远程存储库,但是我很难在git协议后面设置代理,所以我决定用以下命令切换回http(s)
git remote set-url origin https://github.com/<username>/repo.git
git config http.proxy http://proxy:8080
它就像一个魅力.但是每当我连接到远程服务器时,git都会询问用户名和密码,例如pull/push.
我只有一个github帐户,我想保存一些打字,所以问题是如何避免每次我想要推送时输入github用户名.我可以接受输入我的密码,但我不想输入用户名.怎么实现呢?
Mic*_*ina 16
您可以使用以下命令告诉git存储您的凭据:
git config --global credential.helper store
Run Code Online (Sandbox Code Playgroud)
使用此方法,您只需输入一次用户名和密码,git将永远不再要求它.但请注意,您的密码将以明文形式存储,这在安全性方面并不是很好.
您也可以转而使用缓存,它会在会话中输入一次一段时间后存储您的密码.
git config --global credential.helper cache
Run Code Online (Sandbox Code Playgroud)
这样更安全,因为您的密码不会存储在磁盘上 - 只是暂时存储在内存中.如果您对默认值不满意,可以自己设置超时:
git config --global credential.helper 'cache --timeout=600'
Run Code Online (Sandbox Code Playgroud)
这再一次并不总是理想的.
你真正应该使用的是ssh推送和提取数据的协议.这将允许您使用私有ssh密钥对自己进行身份验证 - 这将由操作系统的已安装密钥代理进行处理.这应该与代理一起使用没有任何问题所以你一定要试一试.
您可以通过设置远程URL来进行设置,如下所示:
git remote set-url origin git@github.com:<username>/<project>.git
Run Code Online (Sandbox Code Playgroud)
如果您正在使用其他托管服务,如bitbucket,只需将"github.com"替换为您的提供商域名.
完成后,您需要设置公钥和私钥对,以便在github和您的计算机之间进行通信.有一个关于如何在这里设置它的非常好的教程.如果您使用的是Linux或MacOSX,则只需在运行命令时按照步骤操作即可ssh-keygen.
之后,您可以获得SSH代理来为您存储密码,这通常更安全.SSH代理通常要求您在打开计算机后输入密码一次 - 但之后它应该自动为您完成所有操作.与第一种以纯文本格式存储密码的解决方案不同,密码以这种方式安全存储.
您使用的SSH代理程序取决于您的操作系统,但设置起来应该不难.对于大多数流行的Linux发行版,您不需要做任何事情,我在下面的评论中被告知您可以按如下方式设置Windows:
git config --global credential.helper wincred
Run Code Online (Sandbox Code Playgroud)
我从来没有使用过MacOSX所以我无法确定这是否会像在基于Ubuntu的发行版中那样自动设置.
git remote set-url origin https://<username>@github.com/<username>/repo.git
Run Code Online (Sandbox Code Playgroud)
这将指定代理身份验证所需的用户名,您可以输入密码.
我个人使用凭证帮助程序(git1.8.3 +)将所有不同的凭据(GitHub,BitBucket,...)存储在加密%HOME%\_netrc.gpg(Windows)或~/.netrc.gpg(Unix _netrc)中,而不是迈克尔的答案中描述的内存缓存凭证帮助程序.
有关详细信息,请参阅" 配置Git客户端,如GitHub for Windows,不要求身份验证 ".
不同之处是:
另外,如果您激活了GitHub双因素身份验证,则无法再使用常规GitGub密码,但您需要一个"个人访问令牌",这是一个40长度的随机字符串.将此一次性存储在加密文件中的另一个原因,而不是每次会话必须输入一次.
我刚才描述的是https url,在我看来,它比ssh url更容易管理,你需要通过密码保护你的公共/私有ssh密钥,并且你需要在你的GitHub帐户上发布(一个不同的每个工作站,因为你不应该重用ssh键)
| 归档时间: |
|
| 查看次数: |
10623 次 |
| 最近记录: |