pim*_*jor 31 github ssh-keys jenkins ubuntu-11.04
这是我的设置:
sudo su jenkins
尝试时ssh -vT git@github.com
,我总是被问到我的密码,但我总是最终被认证.(详细选项显示使用了哪个键).正是如此:
jenkins@alpm:~/jobs/test git/workspace$ git pull
Enter passphrase for key '/var/lib/jenkins/.ssh/id*_rsa':
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已按照信中的说明进行操作.问题是Jenkins作业失败并出现以下错误:
status code 128:
stdout:
stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
当我输入密码短语时,这与我得到的错误相同(当然,詹金斯并没有问我密码短语).以下页面:
告诉我,ssh-agent可以帮助记住密码,当我使用自己的用户时,它会执行,但不是jenkins id.请注意,在以普通用户身份运行时会产生:
echo "$SSH_AUTH_SOCK"
/tmp/keyring-nQlwf9/ssh
Run Code Online (Sandbox Code Playgroud)
虽然运行与我的'jenkins'相同的命令但没有产生任何结果(甚至没有权限被拒绝)
我对这个问题的理解是没有记住密码.你有什么主意吗?我应该为jenkins用户启动ssh-agent或密钥环管理器?怎么样?或转发到同一台机器时ssh转发是否合适?有更明智的想法吗?
ps:我从来没有sudo gitted
,我总是使用jenkins或我的用户帐户(如此SO帖子中提到的 - Ubuntu/GitHub SSH密钥问题)
Pat*_*oos 41
由于几个月没有人从评论中写出答案,我会很快这样做.
有两个可能的问题/解决方案:
用错误的用户创建的id_rsa
创建id_rsa作为jenkins用户(请参阅hudson无法从git存储库获取)
将密码保留为空
我通过在创建密钥时将密码短语留空来解决这个问题.
总结一下Jenkins服务器上必须做的事情:
# 1. Create the folder containing the SSH keys if necessary
if [ ! -e ~jenkins/.ssh ]; then mkdir ~jenkins/.ssh; fi
cd ~jenkins/.ssh/
# 2. Create the SSH pair of keys
# The comment will help to identify the SSH key on target systems
ssh-keygen -C "jenkins" -f ~jenkins/.ssh/id_rsa -P ""
# 3. Assign the proper access rights
chown -R jenkins ~jenkins/.ssh/
chmod 700 ~jenkins/.ssh
chmod 600 ~jenkins/.ssh/*
Run Code Online (Sandbox Code Playgroud)
记得:
ssh -vvv git@github.com
根据您的git服务器更改地址)小智 5
我想补充一点,如果您手动创建密钥,它们可能仍然归您所有,并且詹金斯无法读取,请尝试:
sudo chown jenkins -R /var/lib/jenkins/.ssh/*
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
62510 次 |
最近记录: |