本文介绍下如何配置VSTS(visual studio team service,其实就是微软SaaS版的TFS)通过Personal Access Token访问其下的Git代码库。
问题
使用git的时候,每次拉取和推送都需要输入密码是一件挺讨厌的事。
当我们使用github来托管代码时,github提供了几套机制来认证客户端,该配置页面如下图:
github的帮助文档很完善,这里就不展开了,具体参见截图下方小字链接generating SSH keys或generate a GPG key and add it to your account。
如果你的项目是开源项目,放github上没啥问题,如果需要不公开的私有库呢?
我们一般选择微软的VSTS,那么VSTS如何配置类似机制,避免每次都要输入密码?
获取 Personal Access Token
如图,Personal Access Token的配置页面,点击Add
填写描述,选择有效期限和适用哪个账户,选择 scopes,页面拉到底,点击Create Token
这里一定要注意了,图中打码并红色圈住的部分,一定要复制下来保存好,这个token只会在当前显示一次,以后是无法再次从vsts上获取的。
在本机管理 Personal Access Token
好了,我们拿到了Personal Access Token,接下来验证下是否可以正常使用这个token。
在本地打开一个目录,按住Shift
键,鼠标右击空白处,选择在此处打开Powershell窗口
:
在vsts中找到你的代码库(至少会有个MyFirstProject),并且复制clone地址。在Powershell提示符中输入
git clone https://familysrv.visualstudio.com/MyFirstProject/_git/MyFirstProject
如果出现新窗口要求输入微软账号,可以直接关闭,我们接下来可以在命令行中输入账号和token
如上图,命令行提示输入Password的时候,输入刚才拿到的Token即可。
至此,证明这个token确实是可用的。
可是当我们添加文件,推送上去的时候,还会提示需要输入账号密码!?
请注意,本文示例前面进行git clone的时候有警告:这是一个空库。
所以,首次git push进行推送的时候,需要声明远程分支,例git push orgin master:master
我们应该把这个token存到哪里?
请打开控制面板
,用户账户
,管理你的凭据
,windows凭据
:
在普通凭据的右侧,点击添加普通凭据
,如图进行输入,密码填之前拿到的token即可。
重新打开Powershell,添加或修改文件,拉取,推送
没有再提示需要输入账号密码,搞定!
如果你是非windows系统,VSTS也可以配置SSH keys的方式进行认证,和Github配置方式差不多,具体见本文第二张图片VSTS左侧菜单SSH public keys
参考
这篇讲了如何设置vsts的Personal Access Token 以及使用 Windows credentials manager 在本机存储这个token:
VSTS Personal access tokens with Git and Visual Studio 2017
这里有详细说明非windows系统如何避免重复输入Github认证密码:
Is there a way to skip password typing when using https:// on GitHub?