我可以使用SSH成功连接到远程计算机,但当我从Jenkins启动代理时,它抛出以下错误:
ERROR: Server rejected the 1 private key(s) for user1 (credentialId:xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/method:publickey)
[01/19/17 05:35:15] [SSH] Authentication failed.
hudson.AbortException: Authentication failed.
at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:1219)
at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:714)
at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:709)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[01/19/17 05:35:15] Launch failed - cleaning up connection
[01/19/17 05:35:15] [SSH] Connection closed.
我可以使用user1
建立从主机器到节点机器的SSH连接,但是当我尝试使用jenkins的user1
启动代理时,它拒绝私钥。有什么解决方案可以克服这个问题吗?
5条答案
按热度按时间nzk0hqpo1#
我解决这个问题以下步骤:
从目标从属节点的控制台
1.切换到
root
用户:1.添加主目录为
/var/lib/jenkins
的jenkins用户(注意:我将我的主目录保存在/var/lib/jenkins
中):"来自Jenkins大师"
从主服务器上的Jenkins用户处复制
/var/lib/jenkins/.ssh/id_rsa.pub
密钥从目标从属节点的控制台
1.为Jenkins用户创建authorized_keys文件
1.将密钥从Jenkins母版粘贴到文件vim中。保存为
:wq!
1.确保文件具有正确的所有者和权限。
wnvonmuf2#
我通过以下步骤解决了此问题:
1)请确保您在从属计算机和主计算机上的路径都是正确的。您还需要使用正确的用户登录计算机。假设我需要创建一个新的全局jenkins用户“jenkins”,并且我希望我的密钥位于路径“/home/jenkins/.ssh/"中,请首先将“jenkins”用户添加到计算机中。
2)现在,使用https://support.cloudbees.com/hc/en-us/articles/222978868-How-to-Connect-to-Remote-SSH-Slaves-中给出的步骤创建.ssh文件夹并生成ssh密钥
3)确保在主机中执行上述步骤1和2
4)您需要在主计算机和从计算机上的相同路径中具有ssh密钥,并且具有相同的“jenkins”用户权限。
5)最后,来回ssh两台机器的IP以检查终端的双向连接。
6)配置jenkins凭据和节点。确保在节点配置中给予相同的远程根目录-“/home/jenkins”,并选择“manually trusted key verification strategy”-如https://linuxacademy.com/community/posts/show/topic/16008-jenkins-adding-a-slave中所建议的
oknwwptz3#
我的解决方案是:
在周围篡改了2个小时后,它工作了...
mu0hgdu04#
主服务器需要添加到已知主机列表中。您需要做的是从本地SSH到主服务器。然后使用主服务器的私钥SSH到从服务器。如果您可以手动执行此操作,那么Jenkins也可以执行此操作。
我在Jenkins中使用了主人的私钥作为凭据,按照@Aamir的回答终于有些成功了。
fcg9iug35#
将ssh密钥类型从“rsa”更改为“ed25519”对我有效