SSH GitLab pull始终要求输入密码

ffscu2ro  于 2023-08-01  发布在  Git
关注(0)|答案(3)|浏览(124)

(Git特别是实验室!(GitHub没有问题)
我正在尝试创建一个脚本来从mainGitLab分支拉取一个项目,而不需要输入密码。几台远程计算机有一个kiosk模式项目。总是手动连接到它们有点无聊-而不是有一个cron-job来拉 * 自动 *。
我已设置使用SSH,并创建和添加了我的SSH ed 25519密钥。
./.git/config中添加了正确的url,如下所示:

[remote "origin"]
    url = git@gitlab.com:<ME>/<REPO>.git

字符串
其中<ME><REPO>是我的用户名和存储库:)

使用git pullfetch * 始终 * 要求输入密码。同样的情况也不会发生在我的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。
感谢任何帮助,技巧或见解。

egdjgwm8

egdjgwm81#

我在Windows上遇到了同样的问题,甚至ssh -T git@gitlab.domain.com也不起作用!解决方案比我想的要简单得多:我不得不以管理员的身份打开git bash

rsl1atfo

rsl1atfo2#

我刚刚解决了我的gitlab.com存储库的这个问题:我只是按照他们在Use SSH keys to communicate with GitLab教程中的步骤进行了操作。
在那里,他们解释了如何创建密钥,但由于我的密钥已经存在,我所要做的就是按照配置SSH一节中的步骤指向不同的目录。他们只是:
1.键入命令

eval $(ssh-agent -s)`
ssh-add <full path to private SSH key>

字符串
在Linux中,SSH密钥通常保存在~/.ssh/文件夹中
1.编辑~/.ssh/config文件,使其包含以下行

Host gitlab.com`
   PreferredAuthentications publickey
   IdentityFile <full path to private SSH key>

vkc1a9a2

vkc1a9a23#

你的ssh密钥是用密码生成的,这就是为什么它会要求你输入密码。

无密码SSH登录

你的目标
您希望使用Linux和OpenSSH来自动执行任务。因此,您需要从主机A /用户a自动登录到主机B /用户b。您不想输入任何密码,因为您想在shell脚本中调用ssh。
如何做首先以用户a的身份登录A并生成一对身份验证密钥。不要输入密码:

a@A:~> ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa): 
Created directory '/home/a/.ssh'.
Enter passphrase: (THIS IS THE CATCH, just press enter here to leave it empty): 
Enter same passphrase again: (press enter again)
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A

a@A:~> ssh-copy-id remote_username@remote_domain

or

a@A:~> ssh-copy-id remote_username@remote_IP

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
remote_username@remote_domain password:

字符串
在那里,它将要求您输入该远程服务器上的远程用户的密码

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -p '22' 'remote_username@remote_domain'"
and check to make sure that only the key(s) you wanted were added.


现在尝试使用

a@A:~> ssh remote_username@remote_domain


你也应该进去
来源:http://www.linuxproblem.org/art_9.html

相关问题