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

如何编写shell脚本实现GitHub仓库自动克隆到Ubuntu且免输账号密码

Shell脚本自动完成GitHub HTTPS克隆免交互输入凭证方案

注意:GitHub已于2021年8月停止支持HTTPS克隆的账户密码认证,你需要先在GitHub个人账户设置中生成个人访问令牌(PAT),勾选repo相关权限,后续用PAT代替密码使用。

方案1:仓库URL嵌入凭证(最简单,适合临时脚本场景)

直接将用户名和PAT拼入HTTPS仓库地址即可,修改后的脚本示例:

#!/bin/bash
echo AutoClone From github
echo ===================================================
# 替换为你的GitHub用户名、PAT、仓库地址
GITHUB_USER="你的用户名"
GITHUB_PAT="你生成的个人访问令牌"
REPO_URL="github.com/仓库所有者/仓库名.git"
git clone "https://${GITHUB_USER}:${GITHUB_PAT}@${REPO_URL}"

注意:

  • 该方案会明文存储凭证,仅适合在私密、安全的专属设备上使用
  • 脚本完成后建议设置权限避免其他用户读取:chmod 700 你的脚本名.sh

方案2:配置Git全局凭证存储(适合长期使用的固定设备)

不需要修改脚本,提前配置Git的凭证缓存规则即可,操作步骤:

  1. 安装凭证存储工具(部分Ubuntu版本默认自带,缺失的话执行):apt install -y git-core
  2. 配置全局凭证存储规则:git config --global credential.helper store
  3. 首次手动执行一次任意git操作(比如克隆一次公开仓库),输入用户名和PAT,凭证会自动保存在~/.git-credentials文件中,后续所有git操作包括脚本内的克隆都会自动读取凭证,无需手动输入。

方案3:expect自动交互(适合不修改URL也不存储全局凭证的场景)

用expect工具监听命令行输出,自动匹配输入框填入对应内容,操作方法:

  1. 先安装expect:apt update && apt install -y expect
  2. 修改后的脚本示例:
#!/bin/bash
echo AutoClone From github
echo ===================================================
GITHUB_USER="你的用户名"
GITHUB_PAT="你生成的个人访问令牌"
REPO_URL="https://github.com/仓库所有者/仓库名.git"

expect -c "
spawn git clone $REPO_URL
expect \"Username for 'https://github.com':\"
send \"$GITHUB_USER\r\"
expect \"Password for 'https://${GITHUB_USER}@github.com':\"
send \"$GITHUB_PAT\r\"
interact
"

方案4:使用SSH协议克隆(最安全,推荐长期使用)

提前在Ubuntu设备上生成SSH公钥,将公钥添加到GitHub账户的SSH密钥列表中,之后直接使用SSH地址克隆,不需要任何凭证输入,脚本中直接写:

git clone git@github.com:仓库所有者/仓库名.git

生成SSH密钥的命令:ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱",全程回车不要设密码,然后将~/.ssh/id_ed25519.pub的内容复制到GitHub账户的SSH密钥设置中即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:51:03