无法使用 RKE 连接主机

无法使用 RKE 连接主机

我有以下 cluster.yml 文件:

nodes:
    - address: 172.16.20.22
      user: rke
      role:
        - controlplane
        - etcd
        - worker

执行时rke up出现以下错误:

INFO[0000] Building Kubernetes cluster                  
INFO[0000] [dialer] Setup tunnel for host [172.16.20.22] 
WARN[0000] Failed to set up SSH tunneling for host [172.16.20.22]: Can't retrieve Docker Info: error during connect: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: Unable to access node with address [172.16.20.22:22] using SSH. Please check if you are able to SSH to the node using the specified SSH Private Key and if you have configured the correct SSH username. Error: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain 
WARN[0000] Removing host [172.16.20.22] from node lists 
FATA[0000] Cluster must have at least one etcd plane host: failed to connect to the following etcd host(s) [172.16.20.22]

我不确定为什么 SSH 隧道无法正常工作,因为我的机器上打开了端口 22。我的机器上还打开了端口 80 用于 http 流量,这可以在防火墙输出中看到:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources: 
  services: ssh dhcpv6-client http
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

有人知道为什么我的 cluster.yml 配置无法按预期工作吗?我已经确认我的 rke 用户和 root 用户都有通过 SSH 工作的 SSH 密钥,但我不确定是否需要将它们添加到我的配置文件中或如何工作。

答案1

您使用的是哪种 SSH 身份验证?您的 SSH 服务器似乎只接受 SSH 密钥。如果 rke 有一个有效的密钥,需要在配置中指定(全局或每个节点),那么这是没问题的:

nodes:
    - address: 172.16.20.22
      user: rke
      ssh_key_path: "/home/rke/.ssh/id_rsa"
      role:
        - controlplane
        - etcd
        - worker

如果密钥已指定,而您在此处发布的配置中仅缺少该密钥,请检查密钥是否正常工作。使用 SSH 密钥时,需要记住一些事项。最重要的是正确的权限(私钥上的权限为 600)。要检查这一点,只需以与运行 rke 相同的用户身份连接并尝试

ssh -i /home/rke/.ssh/id_rsa [email protected]

这应该有效,否则您将获得更详细的错误信息。如果有效,请尝试执行docker ps。当用户不是该docker组的成员时,我遇到了类似的错误。在这种情况下,它没有足够的权限通过 Docker 套接字进行连接。

相关内容