ArgoCD同步失败报SSH agent requested but SSH_AUTH_SOCK not-specified如何解决
ArgoCD对接SSH私有仓库同步失败修复方案
报错根因
该报错是因为ArgoCD repo-server组件默认缺少SSH主机公钥指纹配置,无法完成SSH链路认证,无需手动配置SSH_AUTH_SOCK环境变量,按以下步骤操作即可修复。
修复步骤
步骤1:配置SSH可信主机公钥(生产环境推荐)
编辑argocd命名空间下的argocd-cm ConfigMap,添加ssh_known_hosts配置段:
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd data: # 以下是github官方SSH公钥指纹,如果你用私有Git托管平台,替换为对应平台的公钥即可 ssh_known_hosts: | github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tK8IlyLzUfJ65wu52Us+v3lpymp7CNNcL/gqj6DmBzxR2uI3cR0dyRa33Fy7tJnN9+1lR10Fvj+E5DJaVeAe09LOjVGf1eoa8lKG4eRVb7maBt81O2wM6cdMKks2aN0o+55SgYyMKC8VvxsaznRtwCFu0JsL3pGftqMlvajFncs9s8I/YD49pGpXQxUSSgSspbasYIPuUeevp6ukXJObu22Xy0=
步骤2:校验SSH私钥有效性
确认你配置在Secret中的SSH私钥符合要求:
- 私钥未设置加密密码,ArgoCD不支持带密码的SSH私钥认证
- 对应公钥已经添加到目标私有仓库的部署密钥列表,且开启了读权限
步骤3:重启repo-server生效配置
执行以下命令重启ArgoCD仓库服务组件:kubectl rollout restart deployment argocd-repo-server -n argocd
临时测试方案(非生产环境用)
如果是测试场景不想配置可信主机公钥,可以在存储仓库认证信息的Secret中添加跳过主机密钥校验的配置:
apiVersion: v1 kind: Secret metadata: labels: argocd.argoproj.io/secret-type: repository name: example-repo namespace: argocd type: Opaque stringData: insecureIgnoreHostKey: "true" sshPrivateKey: | -----BEGIN OPENSSH PRIVATE KEY----- ... -----END OPENSSH PRIVATE KEY----- url: ssh://git@github.com/example-org/example-repo.git
修改完成后重新触发应用同步即可。
内容的提问来源于stack exchange,提问作者larsks
相关产品推荐
相关产品推荐

