git - ключ хоста сервера не кешируется - твист Windows
У меня возникла проблема, похожая на ту, что была в git - ключ хоста сервера не кэширован, но есть изюминка, из-за которой лучшее решение там не работает.
Суть в том, что я пытаюсь клонировать репозиторий из Stash, приложения от Atlassian, такого как git-hub, который наша компания использует для хранения своих репозиториев git. После ввода моего открытого ключа в Stash я использую Git Bash, чтобы попытаться клонировать оттуда хранилище с адресом ssh, предоставленным мне системой. Вот что получается:
$ git clone ssh://git@stash.mycompany.com:7999/teamproject/gitrepo.git
Cloning into 'gitrepo'...
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:12
Connection abandoned.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Так как я не использую putty для подключения, я попытался решить проблему подключения к серверу с помощью ssh:
$ ssh ssh://git@stash.mycompany.com:7999/teamproject/gitrepo.git
ssh: stash.mycompany.com:7999/teamproject/gitrepo.git: no address associated with name
Если я попытался сократить адрес, который может распознать ssh, я получу отпечаток, отличный от того, что отвергает git:
$ ssh ssh://git@stash.mycompany.com
The authenticity of host 'stash.mycompany.com (10.XX.XXX.XX)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:34.
Are you sure you want to continue connecting (yes/no)? no
Host key verification failed.
Я предпочитаю не продолжать соединение, потому что, если я действительно подключаюсь, он просто помещает запись, которая не помогает git выполнять свою работу, в мой файл known_hosts.
Кто-нибудь знает, как обойти эту проблему?
1 ответ
Я попросил коллегу дать мне подсказку, которая, в конце концов, помогла мне преодолеть мою проблему. Ответ на немедленный вопрос, который я разместил выше, состоял в том, что я не предоставлял ssh номер порта в формате, который он ожидал. Вы не указываете номер порта, как это...
ssh stash.mycompany.com:7999
... а вот так:
ssh -p 7999 stash.mycompany.com
Этот синтаксис заставил ssh спросить, хочу ли я сохранить хост в списке известных хостов, и он дал мне отпечаток, который, как сказал Stash, он должен был использовать. (После того как я сказал "да", ssh повесил мою подсказку Git Bash, и мне пришлось завершить весь сеанс Git Bash и начать новый. Но, по крайней мере, хост уже был сохранен в файле known_hosts.:))
Как только я преодолел эту проблему, единственное, что мне нужно было сделать, это применить решение в этом потоке github: нет доступных поддерживаемых методов аутентификации, которые должны были установить переменную GIT_SSH в моем.bash_profile для Git Bash.
export GIT_SSH=/bin/ssh.exe
После того как я сделал это и перезапустил Git Bash, git начал работать, используя мой ключ ssh.