Yocto Recipe从私有Azure Git仓库拉取源码失败求助
解决Yocto Recipe拉取私有Azure Git仓库源码失败问题
1. 修正SRC_URI拼写错误
你当前的SRC_URI存在明显拼写错误:pocrotol=ssh应改为protocol=ssh,这会直接导致Yocto无法识别拉取协议。修正后的SRC_URI如下:
SRC_URI = "git://git@ssh.dev.azure.com:v3/CompanyName/ProjectName/TestYoctoSourceUri;protocol=ssh;branch=master;destsuffix=git/common"
2. 确保构建环境能正常读取SSH密钥
- 检查构建用户的SSH配置文件权限:
~/.ssh/config和~/.ssh/id_rsa的权限必须设置为600,避免权限过宽被SSH拒绝:chmod 600 ~/.ssh/config ~/.ssh/id_rsa - 如果构建在无交互环境(如CI/CD),需提前启动ssh-agent并加载密钥,确保Yocto拉取时能自动认证:
eval $(ssh-agent) ssh-add ~/.ssh/id_rsa - 可在
local.conf中添加配置,强制Yocto使用指定的SSH密钥:BB_SSH_ADD_ENV = "${HOME}/.ssh/id_rsa"
3. 验证Azure DevOps SSH连接有效性
在构建环境中手动执行以下命令,确认SSH连接正常:
ssh -T git@ssh.dev.azure.com
认证成功后会返回类似Hello [YourName]! You've successfully authenticated, but do not have access to this repository.的提示(若仓库权限配置正确,会显示仓库相关访问信息)。
4. 检查Yocto Fetch配置
- 确保未自定义覆盖Yocto默认的git fetch逻辑,
meta层中的git.bbclass需正常生效。 - 若构建环境需要代理,需在
local.conf中配置代理变量,例如:HTTP_PROXY="http://your-proxy:port" HTTPS_PROXY="http://your-proxy:port" NO_PROXY="ssh.dev.azure.com,localhost"
内容的提问来源于stack exchange,提问作者Dhanya kumar
相关产品推荐
相关产品推荐

