代码之家  ›  专栏  ›  技术社区  ›  aphexlog

刀客户端列表无法使用密钥{key}以厨师用户身份验证到{server_url}

  •  0
  • aphexlog  · 技术社区  · 6 年前

    我在跑步 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.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"]
    

    刀SSL检查:

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

    刀型:

    $ knife --version
    Chef: 14.1.12
    

    (在Redhat 7上运行)

    有人知道我为什么会犯这个错误吗?还有人知道我该如何解决这个错误吗?

    • 提前谢谢你!
    1 回复  |  直到 6 年前
        1
  •  1
  •   coderanger    6 年前

    正如错误所说的“同步主机上的时钟”。

    您的系统时钟或厨师服务器上的时钟不正确(或相对于设置的时区不正确)。为了限制重播攻击,我们在所有请求中放置一个签名的时间戳,并且它必须在一个相当窄的窗口内(分钟,而不是秒)。这个错误意味着服务器认为您的时间戳太远了,所以您中的一个或两个在当前时间上都是错误的。