首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有git-sync返回主机密钥验证的Docker容器在执行git获取时失败

带有git-sync返回主机密钥验证的Docker容器在执行git获取时失败
EN

Stack Overflow用户
提问于 2022-02-02 16:37:12
回答 1查看 497关注 0票数 1

我的docker-compose.yml看起来像:

代码语言:javascript
复制
gitsync:
    image: openweb/git-sync:0.0.1
    restart: always
    command: >
      sh -c "ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa &&
             ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts &&
             chmod 600 ~/.ssh/id_rsa &&
             chmod 600 ~/.ssh/known_hosts"
    environment:
      GIT_SYNC_REPO: git@github.com:{company}/{repo_name}.git
      GIT_SYNC_DEST: /opt/airflow/dags/my_folder
      GIT_SYNC_BRANCH: master
      GIT_SYNC_SSH: 1
      GIT_SSH_KEY_FILE: ~/.ssh/id_rsa
      GIT_SSH_KNOWN_HOSTS_FILE: ~/.ssh/known_hosts
    volumes:
    - ./database_utils:/database_utils
    - ./maintenance:/maintenance
    - ./utils:/utils
    - ./dags:/opt/airflow/dags
    - ./logs:/opt/airflow/logs

我得到的错误是:

代码语言:javascript
复制
2022/02/02 16:29:36 error syncing repo: error running command "git fetch origin master": exit status 128: Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

之所以存在存储库,是因为当设置内容通过https执行时,该https工作正常。

代码语言:javascript
复制
gitsync:
    image: openweb/git-sync:0.0.1
    restart: always
    environment:
      GIT_SYNC_REPO: https://{user}:{personal-access-token}@github.com/{company}/{repo_name}.git
      GIT_SYNC_DEST: /opt/airflow/dags/my_folder
      GIT_SYNC_BRANCH: master
    volumes:
    - ./database_utils:/database_utils
    - ./maintenance:/maintenance
    - ./utils:/utils
    - ./dags:/opt/airflow/dags
    - ./logs:/opt/airflow/logs

当我阅读时,我尝试将赠款设置为600,否则将不会使用该密钥。知道怎么修吗?

编辑:使用dockerfile进行测试

我将docker-compose.yml改为:

代码语言:javascript
复制
  gitsync:
    image: my-gitsync-image
    restart: always
    container_name: my-gitsync
    build:
      context: .
      dockerfile: Dockerfile-gitsync
    environment:
      GIT_SYNC_REPO: git@github.com:{company}/{repo}.git
      GIT_SYNC_DEST: /opt/airflow/dags/my_folder
      GIT_SYNC_BRANCH: master
      GIT_SYNC_SSH: 1
      GIT_SSH_KEY_FILE: ~/.ssh/id_rsa
      GIT_SSH_KNOWN_HOSTS_FILE: ~/.ssh/known_hosts

并创建了一个Dockerfile-gitsync,格式为:

代码语言:javascript
复制
FROM openweb/git-sync:0.0.1

    RUN ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa
    RUN ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
    RUN chmod 600 ~/.ssh/id_rsa
    RUN chmod 600 ~/.ssh/known_hosts

现在的错误是:

代码语言:javascript
复制
2022/02/02 17:53:41 error syncing repo: error running command "git fetch origin master": exit status 128: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

所以我想知道已知的主机正在工作,但是ssh key不喜欢它。我试着做:

代码语言:javascript
复制
RUN ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa -C "my_company@email.com" 

但也不起作用。

EN

回答 1

Stack Overflow用户

发布于 2022-02-02 16:48:35

代码语言:javascript
复制
$ ssh-keyscan -t rsa https://github.com/
getaddrinfo https://github.com/: Name or service not known

SSH对https://github.com/一无所知。它必须是主机,而不是URL (不是说SSH和HTTPS URL有点矛盾,对吗?)

代码语言:javascript
复制
$ ssh-keyscan github.com
# github.com:22 SSH-2.0-babeld-e47cd09f
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
# github.com:22 SSH-2.0-babeld-e47cd09f
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
# github.com:22 SSH-2.0-babeld-e47cd09f
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
# github.com:22 SSH-2.0-babeld-e47cd09f
# github.com:22 SSH-2.0-babeld-e47cd09f
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70959358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档