Gitlab post-receive hook Проверка ключа хоста не удалась

У меня 3 сервера:

werkstation.example.com -> server where the gitlab repository is cloned & for changing the files fom the repository
git.example.com -> gitab server with repository "tomcat"
docker.example.com -> server where the files will be copied with git hook

Мой git-крючок:

#!/bin/sh

read oldrev newrev refname

REPO="[email protected]:michaelv1234/tomcat.git"
BRANCH=`echo $refname | sed -n 's/^refs\/heads\///p'`
BRANCH_DIR="/home/michael"
SSH_DEST="[email protected]"

##
# Instantiate the branches on the puppetmaster
if [ "$newrev" -eq 0 ] 2> /dev/null; then
        # branch is being deleted
        echo "Deleting remote branch $SSH_DEST $BRANCH_DIR/$BRANCH"
        echo "$SSH_DEST" /bin/sh
        ssh  "$SSH_DEST" /bin/sh <<-EOF
                cd "$BRANCH_DIR" && rm -rf $BRANCH
        EOF
else
        # branch is being updated
        echo "Updating remote branch $SSH_DEST $BRANCH_DIR/$BRANCH"
        ssh "$SSH_DEST" /bin/sh <<-EOF
                { cd "$BRANCH_DIR/$BRANCH" || mkdir -p "$BRANCH_DIR/$BRANCH" && cd "$BRANCH_DIR/$BRANCH"; } \
                && { git fetch origin && git reset --hard origin/$BRANCH || { git clone "$REPO" ./ && git checkout $BRANCH; }; }
        EOF
fi

Но я все еще получаю эту ошибку:

michael@werkstation:~/tomcat$ git push -u origin master
Counting objects: 5, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 254 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Updating remote branch [email protected] /home/michael/master
remote: Host key verification failed.
To [email protected]:michaelv1234/tomcat.git
0032c02..6e8ef97  master -> master
Branch master set up to track remote branch master from origin.

Я уже удалил файл «known_hosts» на всех серверах, но все еще получаю сообщение об ошибке


person Fred Bongers    schedule 26.05.2016    source источник
comment
Просто для тестирования в вашем git-хуке, можете ли вы unset GIT_DIR?   -  person VonC    schedule 26.05.2016
comment
да, я могу отключить GIT_DIR   -  person Fred Bongers    schedule 26.05.2016
comment
Это что-то изменило?   -  person VonC    schedule 26.05.2016
comment
нет, я также пробовал с отключенным GIT_DIR и отключенным GIT_WORK_DIR, но все еще получаю ошибку   -  person Fred Bongers    schedule 26.05.2016


Ответы (2)


Решение: на сервере Gitlab:

sudo su - git
ssh-keygen
ssh-copy-id [email protected]
ssh [email protected]
person Fred Bongers    schedule 02.06.2016

Изменились ли ключи SSH на docker.example.com?

Вы получаете сообщение об ошибке remote: Host key verification failed., потому что ключ хоста SSH компьютера docker.example.com не соответствует ключу, содержащемуся в файле known_hosts на git.example.com.

Найдите на компьютере git.example.com файлы known_hosts и посмотрите, есть ли на нем запись для docker.example.com. Если вы найдете запись, удалите и повторите операцию (или, альтернативно, запустите ssh-keygen -R docker.example.com >> /path/to/known_hosts, чтобы обновить ключ для этого хоста).

person bradrini    schedule 30.05.2016
comment
Нет, ключи SSH не изменились - person Fred Bongers; 30.05.2016