Kubesphere 自动化部署在 push tag 阶段失败报错
+ git push http://****:****@github.com/****/devops-java-sample.git --tags --ipv4
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/****/devops-java-sample.git/'
script returned exit code 128
这个错误提示表明自 2021 年 8 月 13 日起,GitHub 不再支持密码验证形式的身份验证。相反,他们推荐使用其他更安全的身份验证方式,比如使用个人访问令牌(Personal Access Token)或者 SSH 密钥。
解决方案:
在你的情况下,由于使用了用户名和密码形式的身份验证,导致认证失败。建议按照 GitHub 的建议,参考 https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls,使用个人访问令牌或者设置 SSH 密钥来替代用户名和密码进行身份验证。这样可以解决认证失败的问题。
以下是使用个人访问令牌(Personal Access Token)的步骤:
生成个人访问令牌:
登录到 GitHub 帐户。
点击头像,然后选择 Settings(设置)。
在左侧导航栏中,选择 Developer settings(开发者设置)。
在左侧导航栏中,选择 Personal access tokens(个人访问令牌)。
点击 Generate new token(生成新令牌)。
在 Token description(令牌描述)字段中输入描述。
选择需要的权限范围(scopes),通常包括 repo、write:packages 等。
点击 Generate token(生成令牌)。
将显示的个人访问令牌复制到安全的位置,因为它只会在这个时候显示一次。
使用个人访问令牌进行身份验证:
在执行 git push 命令时,将个人访问令牌作为密码提供。
例如,如果你的个人访问令牌是 YOUR_ACCESS_TOKEN,则你的 git push 命令将如下所示:
git push https://YOUR_USERNAME:YOUR_ACCESS_TOKEN@github.com/****/devops-java-sample.git --tags --ipv4
替换仓库 URL:
将 https://github.com/****/devops-java-sample.git 替换为你的实际仓库 URL。
将 YOUR_USERNAME 替换为你的 GitHub 用户名。
将 YOUR_ACCESS_TOKEN 替换为你生成的个人访问令牌。
有2个 generate token 选哪个?
在 GitHub 的个人访问令牌设置页面中,有两个选项:Fine-grained personal access tokens 和 Personal access tokens (classic)。
Fine-grained personal access tokens:这是 GitHub 的新版个人访问令牌设置界面,提供更细粒度的权限控制。你可以为每个令牌选择需要的权限范围(scopes),以便最小化安全风险。
Personal access tokens (classic):这是 GitHub 的传统个人访问令牌设置界面,提供了相对较少的权限选择。这个选项在新版个人访问令牌界面出现之前就存在了。
通常来说,建议使用 Fine-grained personal access tokens,因为它提供了更灵活的权限控制。如果你只需要基本的权限,也可以选择 Personal access tokens (classic)。
根据你的需要和偏好,选择其中一个选项生成个人访问令牌即可。