You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用k3sup join命令遭遇sudo认证失败,sudo -S无法解决

问题描述

已将本地生成的SSH密钥(路径~/.ssh/id_rsa)复制到Master和Worker节点,但执行以下k3sup join命令时出现sudo认证错误,即使使用sudo -S选项也无法解决:

k3sup join --ip $WORKER_IP --user $WORKER_USER --server-ip $MASTER_IP --server-user $MASTER_USER --k3s-extra-args "--node-external-ip $WORKER_IP --node-ip $WORKER_IP" --k3s-channel stable --print-command

错误输出:

Running: k3sup join
ssh: sudo cat /var/lib/rancher/k3s/server/node-token
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
sudo: a password is required
Error: unable to get join-token from server: Process exited with status 1

预期正常输出应成功获取节点token,并完成Worker节点的k3s agent安装与配置。

解决方法

方法1:配置Master节点用户免密sudo

k3sup需要在Master节点执行sudo cat /var/lib/rancher/k3s/server/node-token获取token,若用户无免密sudo权限,会触发终端密码输入要求。在Master节点执行以下命令配置免密:

# 替换为你的Master节点用户名
echo "$MASTER_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$MASTER_USER
# 设置正确权限避免sudo报错
sudo chmod 0440 /etc/sudoers.d/$MASTER_USER

配置完成后重新执行原k3sup join命令即可。

方法2:手动获取token后指定参数执行

若不想修改sudo配置,先手动从Master节点获取token:

ssh $MASTER_USER@$MASTER_IP "sudo cat /var/lib/rancher/k3s/server/node-token"

将获取到的token替换到以下命令中执行:

k3sup join --ip $WORKER_IP --user $WORKER_USER --server-ip $MASTER_IP --server-user $MASTER_USER --token "替换为拿到的token" --k3s-extra-args "--node-external-ip $WORKER_IP --node-ip $WORKER_IP" --k3s-channel stable --print-command

方法3:检查SSH密钥配置正确性

确保本地SSH公钥已正确添加到Master和Worker节点的~/.ssh/authorized_keys文件,且文件权限符合要求:

# 在Master和Worker节点分别执行
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

避免因SSH连接仍需密码,导致sudo命令无法无交互执行。

内容的提问来源于stack exchange,提问作者nana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:15:26