故障诊断


1. Failed to set up SSH tunneling for host [xxx.xxx.xxx.xxx]

Can’t retrieve Docker Info ; Failed to dial to /var/run/docker.sock: ssh: rejected: administratively prohibited (open failed)

  • 指定连接的用户无权访问Docker套接字,可以通过登录主机并运行docker ps命令来检查:

    $ ssh -i ssh_privatekey_file user@server
    user@server$ docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    
    1
    2
    3

    请参阅以非root用户身份管理Docker来正确设置。

  • 当使用RedHat/CentOS操作系统时,root由于Bugzilla#1527565,您无法使用用户连接到节点。您需要添加一个单独的用户并将其配置为访问Docker套接字。请参阅以非root用户身份管理Docker来正确设置。

  • SSH服务器版本不是6.7或更高版本,这是套接字转发工作所必需的,它用于通过SSH连接到Docker套接字。可以使用sshd -V连接主机来检查:

    $ nc xxx.xxx.xxx.xxx 22
    SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.10
    
    1
    2

2. Failed to dial ssh using address [xxx.xxx.xxx.xxx:xx]

Error configuring SSH: ssh: no key found

  • 指定的ssh_key_path密钥文件无法访问,确保您指定了私钥文件(而不是公钥.pub),并且运行该rke命令的用户可以访问私钥文件。
  • 指定的ssh_key_path密钥文件格式错误,通过运行ssh-keygen -y -e -f private_key_file检查私钥是否有效。这将打印私钥的公钥,如果私钥文件无效,将会失败。

3. 无法使用地址[xxx.xxx.xxx.xxx:xxx]

ssh:握手失败:ssh:无法进行身份验证,尝试的方法[none publickey],不支持的方法仍然存在

  • 指定的密钥文件ssh_key_path对于访问节点不正确。仔细检查是否ssh_key_path为节点指定了正确的,以及是否指定了要连接的正确用户。

4. Failed to dial ssh using address [xxx.xxx.xxx.xxx:xx]

ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

  • 如果您想使用加密的私钥,您应该使用ssh-agent用您的口令加载密钥。您可以通过在命令行上指定--ssh-agent-auth来配置RKE来使用该代理,它将在运行RKE命令的环境中使用SSH_AUTH_SOCK环境变量。

5. Cannot connect to the Docker daemon

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

  • 通过节点配置的addressport无法访问该节点