我尝试在jenkins中运行一个多分支作业。代码放在git中。运行作业时遇到访问权限问题。在jenkins中生成ssh-keygen
时遇到权限被拒绝错误。
在ubuntu box中配置。
1.尝试从/root/.ssh复制id_rsa和id_rsa.pub,但它不复制id_rsa中的任何内容,也不允许手动编辑文件。
git ls-remote -h git@github.com:****/*****1.git HEAD
The authenticity of host 'github.com ("IP Address")' can't be established.
RSA key fingerprint is SHA256:********************Y8.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/var/lib/jenkins/.ssh/known_hosts).
Load key "/var/lib/jenkins/.ssh/id_rsa": Permission denied
Permission denied (publickey).
fatal: Could not read from remote repository.
2条答案
按热度按时间wvt8vs2t1#
出现此错误的原因是,您可能已将id_rsa文件复制到位置
/var/lib/jenkins/.ssh/
。您可能已将该文件从本地计算机复制到远程服务器,或者已在根级别创建密钥,因此文件“id_rsa”的所有者为根,而您正在尝试从Jenkins访问此文件。Jenkins应该是读取该文件的所有者。以下是检查和修复此问题的步骤sudo su
,然后进入/var/lib/jenkins/.ssh/
。1.运行命令
ls -la
1.您将看到owner作为id_rsa文件(如
-r--------. 1 root root 18 Sep 1 10:00 id_rsa
)的root根1.运行命令
chown jenkins:jenkins id_rsa
。此命令将文件的所有者从root更改为jenkins。现在同一行看起来像-r--------. 1 jenkins jenkins 18 Sep 1 10:01 id_rsa
1.现在尝试再次运行jenkins作业,它将成功运行。
1.请确保您的id_rsa文件应该有正确的权限。如果不安全,请执行
chmod 400 id_rsa
我已经按照上述步骤解决了这个问题。
pepwfjgg2#
Load key "/var/lib/jenkins/.ssh/id_rsa": Permission denied
是关于阅读本地文件系统上的本地私有ssh密钥,与远程服务器无关。确保您对ssh密钥具有读取权限。(当我的密钥由Windows主机加密时,我遇到了这个问题,但我的Docker容器无法解密它。
您也可以生成一个新密钥并尝试使用该密钥。