(Git特别是实验室!(GitHub没有问题)
我正在尝试创建一个脚本来从main
GitLab分支拉取一个项目,而不需要输入密码。几台远程计算机有一个kiosk模式项目。总是手动连接到它们有点无聊-而不是有一个cron-job来拉 * 自动 *。
我已设置使用SSH,并创建和添加了我的SSH ed 25519密钥。
在./.git/config
中添加了正确的url
,如下所示:
[remote "origin"]
url = git@gitlab.com:<ME>/<REPO>.git
字符串
其中<ME>
和<REPO>
是我的用户名和存储库:)
使用git pull
或fetch
* 始终 * 要求输入密码。同样的情况也不会发生在我的GitHub仓库上。
我成功使其工作的唯一方法是使用Personal Access Token,如:
[remote "origin"]
url = https://oauth2:<MY P. A. TOKEN>@gitlab.com/<ME>/<REPO>.git
型
但是我不喜欢令牌是明文的,并且不得不做SSH握手范围之外的事情。
有什么GitLab特别的东西我遗漏了吗?我能搜索到的每个帮助页面都只是讨论如何设置正确的SSH URI(git@gitlab.com.....等等)我已经做了。但是每次我触发git pull
时,它一直要求输入密码。
Windows。Git Bash。
感谢任何帮助,技巧或见解。
3条答案
按热度按时间egdjgwm81#
我在Windows上遇到了同样的问题,甚至ssh -T git@gitlab.domain.com也不起作用!解决方案比我想的要简单得多:我不得不以管理员的身份打开git bash
rsl1atfo2#
我刚刚解决了我的gitlab.com存储库的这个问题:我只是按照他们在Use SSH keys to communicate with GitLab教程中的步骤进行了操作。
在那里,他们解释了如何创建密钥,但由于我的密钥已经存在,我所要做的就是按照配置SSH一节中的步骤指向不同的目录。他们只是:
1.键入命令
字符串
在Linux中,SSH密钥通常保存在
~/.ssh/
文件夹中1.编辑
~/.ssh/config
文件,使其包含以下行型
vkc1a9a23#
你的ssh密钥是用密码生成的,这就是为什么它会要求你输入密码。
无密码SSH登录
你的目标
您希望使用Linux和OpenSSH来自动执行任务。因此,您需要从主机A /用户a自动登录到主机B /用户b。您不想输入任何密码,因为您想在shell脚本中调用ssh。
如何做首先以用户a的身份登录A并生成一对身份验证密钥。不要输入密码:
字符串
在那里,它将要求您输入该远程服务器上的远程用户的密码
型
现在尝试使用
型
你也应该进去
来源:http://www.linuxproblem.org/art_9.html