knife 客户端列表无法以密钥 {key} 作为主厨用户向 {server_url} 进行身份验证

knife client list failed to authenticate to {server_url} as chef-user with key {key}

我是 运行 knife client list 并收到以下错误:

ERROR: Failed to authenticate to https://chef-server.dev.reach.IE.LOCAL/organizations/accenture as chef-user with key /home/svc.jenkins/helix-chef/iac_chef_standalone_wso2/.chef/chef-user.pem
Response:  Failed to authenticate as chef-user. Synchronize the clock on your host.

奇怪的是,这刚刚在一秒钟前工作,输出消息为:

$ knife client list
accenture-validator

我只是 运行 ``knife client list``` 再次收到错误(没有任何改变应该导致这个)

Knife.rb:

current_dir = File.dirname(__FILE__)
log_level                :info
log_location             STDOUT
node_name                "chef-user"
client_key               "#{current_dir}/chef-user.pem"
validation_client_name   "accenture-validator"
validation_key           "#{current_dir}/accenture-validator.pem"
chef_server_url          "https://chef-server.dev.reach.IE.LOCAL/organizations/accenture"
cache_type               'BasicFile'
cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
cookbook_path            ["#{current_dir}/../cookbooks"]

Knife ssl 检查:

$ knife ssl check
Connecting to host chef-server.dev.reach.IE.LOCAL:443

刀版:

$ knife --version
Chef: 14.1.12

(运行 在 RedHat 7 上)

有谁知道我为什么会收到错误消息以及如何解决它?

如错误所述"Synchronize the clock on your host."

您的系统时钟或 Chef 服务器上的时钟不正确(或相对于其设置的时区错误)。为了限制重放攻击,我们在所有请求中放置了一个签名的时间戳,并且它必须在相当窄的 window(分钟,但不是秒)内。该错误意味着服务器认为您的时间戳太晚了,因此你们中的一个或两个关于当前时间的错误。

打开终端

  1. 写 sudo su(以管理员身份登录)
  2. 使用以下命令 -> date +%T -s "11:14:00"

这对我有用