我的docker-compose.yml看起来像:
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我得到的错误是:
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工作正常。
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改为:
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,格式为:
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现在的错误是:
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不喜欢它。我试着做:
RUN ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa -C "my_company@email.com" 但也不起作用。
发布于 2022-02-02 16:48:35
$ ssh-keyscan -t rsa https://github.com/
getaddrinfo https://github.com/: Name or service not knownSSH对https://github.com/一无所知。它必须是主机,而不是URL (不是说SSH和HTTPS URL有点矛盾,对吗?)
$ 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-e47cd09fhttps://stackoverflow.com/questions/70959358
复制相似问题