为啥我在更新时间时说windows在与time.windows.com进行同步时出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我在更新时间时说windows在与time.windows.com进行同步时出错相关的知识,希望对你有一定的参考价值。
请检查 Windows Time 服务是不是没有启动,是的话将其启动并设置为“自动”;以及当前时间是否处于正常范围(比如今天是10月9日,但是系统日期是11月8日,处于这种非正常状态也会同步失败的)。个人建议使用第三方的时间同步软件,比如“秋落叶时间同步器”或其它的,系统自带的不稳定。 参考技术A windows XP会出现这个问题,windows 7
不会!安装一个额外软件吧!
为啥 Jenkins 在启动代理时说“服务器拒绝了 1 个私钥”?
【中文标题】为啥 Jenkins 在启动代理时说“服务器拒绝了 1 个私钥”?【英文标题】:Why Jenkins says "Server rejected the 1 private key(s)" while launching the agent?为什么 Jenkins 在启动代理时说“服务器拒绝了 1 个私钥”? 【发布时间】:2017-06-03 17:39:27 【问题描述】:我可以使用 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
启动代理时,它会拒绝私钥。有什么办法可以解决这个问题吗?
【问题讨论】:
【参考方案1】:我按照以下步骤解决了这个问题:
从目标从节点的控制台
-
切换到
root
用户:
sudo su
-
添加一个 jenkins 用户,主目录为
/var/lib/jenkins
(注意:我将主目录保存在 /var/lib/jenkins
):
useradd -d /var/lib/jenkins jenkins
来自 Jenkins 大师
从 Jenkins 用户复制 /var/lib/jenkins/.ssh/id_rsa.pub
密钥到 master
从目标从节点的控制台
-
为 Jenkins 用户创建一个 authorized_keys 文件
mkdir /var/lib/jenkins/.ssh
touch /var/lib/jenkins/.ssh/authorized_keys
将来自 Jenkins master 的密钥粘贴到文件 vim 中。使用:wq!
保存
确保文件拥有正确的所有者和权限。
chown -R jenkins /var/lib/jenkins/.ssh
chmod 600 /var/lib/jenkins/.ssh/authorized_keys
chmod 700 /var/lib/jenkins/.ssh
【讨论】:
在第一次运行时,Jenkins 需要将 remoting.jar 复制到 /var/lib/jenkins,因此 jenkins 用户也必须是 /var/lib/jenkins 目录的所有者。此答案中提到的所有内容都是正确的,但就我而言,我必须另外执行以下命令:chown -R jenkins /var/lib/jenkins
如果您使用 Fedora 或类似的发行版(例如 RHEL),请不要在您的 SSH 服务器上禁用 PAM 身份验证。检查文件/etc/ssh/sshd_config
并确保您拥有UsePAM yes
。我通过运行sudo systemctl status sshd
并看到有关它的警告发现了这一点。该文件本身试图帮助我:# WARNING: 'UsePAM no' is not supported in Fedora and may cause several problems.
.
@psq 非常感谢。我已经尝试了每一个配置如何......我绝望地撞到墙上,你的解决方案对我帮助很大。 P.s 我正在使用 oraclelinux。【参考方案2】:
我通过以下步骤解决了这个问题:
1) 确保您在从机和主机上都处于正确的路径上。您还需要使用正确的用户登录机器。假设我需要创建一个新的全局 jenkins 用户“jenkins”并且我希望我的密钥位于路径“/home/jenkins/.ssh/”中,首先将“jenkins”用户添加到机器中。
2) 现在创建 .ssh 文件夹并使用https://support.cloudbees.com/hc/en-us/articles/222978868-How-to-Connect-to-Remote-SSH-Slaves-中给出的步骤生成 ssh 密钥
3) 确保在您的主机中执行上述步骤 - 1 和 2
4) 您需要在同一路径中的主从计算机中拥有 ssh 密钥,并具有相同的“jenkins”用户权限。
5) 最后,来回 SSH 两台机器 IP 以检查终端的双向连接。
6) 配置 jenkins 凭据和节点。确保在节点配置中提供相同的远程根目录 - “/home/jenkins”,并选择“手动可信密钥验证策略” - 如https://linuxacademy.com/community/posts/show/topic/16008-jenkins-adding-a-slave中所建议的那样
【讨论】:
【参考方案3】:我的解决方案是:
$ user add -d /var/lib/jenkins jenkins
$ sudo su
$ passwd jenkins
$ chown -R jenkins /var/lib/jenkins/.ssh/*
$ chmod 700 .ssh
篡改了2小时后它工作了......
【讨论】:
不知道为什么你被否决了 - jenkins 用户的 chown 更改正是让我着迷的原因,而且在我自己弄清楚这一点之前已经很长时间了。谢谢!【参考方案4】:主人需要为我添加已知主机列表。 您需要做的是从本地通过 SSH 连接到主服务器。然后使用 master 私钥 SSH 到 slave。如果您可以手动执行此操作,那么 Jenkins 也将能够执行此操作。
我在 Jenkins 中使用主私钥作为凭证,遵循@Aamir 的回答,终于取得了一些成功。
【讨论】:
以上是关于为啥我在更新时间时说windows在与time.windows.com进行同步时出错的主要内容,如果未能解决你的问题,请参考以下文章
为啥debian我安装 apt-spy 时候没用,后来使用时说没找到,怎么办?
为啥 Jenkins 在启动代理时说“服务器拒绝了 1 个私钥”?
为啥我在与 Twilio 交互的 SMS 应用程序中收到错误 AttributeError: 'module' object has no attribute 'Response'?