目录
Please enable Javascript to view the contents

k8s部署实录-2-rke指定ssh_key_path替换默认密钥路径

 ·  ☕ 1 分钟

重要

rke 默认读取 ~/.ssh/id_rsa。如果 SSH 密钥使用 ed25519 等非 RSA 算法生成,需要在 cluster.yaml 中指定 ssh_key_path

环境说明

  • rke v1.2.6
  • SSH 密钥算法:ed25519(客户安全要求,私钥路径 ~/.ssh/id_ed25519

1.简介

客户出于安全考虑使用 ed25519 生成 SSH 密钥。执行 rke up 时报 id_rsa 文件不存在,所有节点连接失败。

2.说明

2.1 报错

1
2
3
4
5
WARN[0000] Failed to set up SSH tunneling for host [10.0.0.1]:
  Can't establish dialer connection: Error while reading SSH key file:
  open /root/.ssh/id_rsa: no such file or directory
WARN[0000] Removing host [10.0.0.1] from node lists
FATA[0000] Cluster must have at least one etcd plane host

rke 在 ~/.ssh/ 下依次查找 id_rsaid_dsaid_ecdsaid_ed25519。但不会自动探测 ed25519 密钥。

2.2 处理

cluster.yaml 中配置 ssh_key_path

级别配置位置生效范围
集群级别cluster.yaml 顶层所有节点
节点级别每个 nodes[] 条目内单个节点

节点级别优先级高于集群级别。

集群级别:

1
2
3
4
5
6
cluster_name: mycluster
ssh_key_path: ~/.ssh/id_ed25519
nodes:
  - address: 10.0.0.1
    user: ubuntu
    role: [controlplane, etcd, worker]

节点级别:

1
2
3
4
5
nodes:
  - address: 10.0.0.1
    user: ubuntu
    role: [controlplane, etcd, worker]
    ssh_key_path: ~/.ssh/id_ed25519

3.参考

分享

Hex
作者
Hex
CloudNative Developer