Я пытаюсь перенести изменения из моего локального репо в удаленное репо. Когда я печатаю:
git push origin
Я получаю следующую ошибку:
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:xx
Connection abandoned.
fatal: The remote end hung up unexpectedly
Как я могу это решить? Я использую git из командной строки в Windows 7.
редактировать
Когда я пытаюсь сделать простой ssh
ssh user@hostname
Я получаю следующую ошибку:
Could not create directory '/c//%HOMEDRIVE%%HOMEPATH%/.ssh'.
percent_expand: unknown key %H
Как-то он не создаст каталог, потому что путь неверен. Как это исправить?
@eckes: Edit2
Мой дом настроен на %HOMEDRIVE%%HOMEPATH%
, это правильно?
$HOME
настроен неправильно. Попробуйте установитьHOME
переменную среды в окнах, используяMy Computer
-> щелкните правой кнопкой мыши ->Properties
-> TabAdvanced
-> ButtonEnvironment Variables
/c//
(предположительно буквы диска) у вас все еще есть%HOMEDRIVE%
... Возможно, вы сможете сэкономить время, поигравшись со значением самостоятельно и повторив его?HOMEDRIVE
иHOMEPATH
и установитеHOME
на полученное значение ...Ответы:
Сообщение означает, что ключ хоста
origin
отсутствует в вашем файле доверенных хостов.Чтобы обойти это, откройте обычное SSH-соединение,
origin
и SSH спросит вас, хотите ли вы доверять удаленному хосту (из консоли Git):Если вы доверяете удаленному хосту (т.е. типу
yes
), SSH добавит его ключ в список известных хостов.После этого вы сможете сделать свой
git push origin
.В качестве альтернативы вы также можете вручную добавить ключ
origin
к,.ssh/known_hosts
но для этого необходимо, чтобы вы придерживались форматаknown_hosts
файла, как описано на странице руководстваsshd
(Раздел AUTHORIZED_KEYS FILE FORMAT ).источник
known_hosts
файле есть github.com .Для тех из вас, кто настраивает MSYS Git в Windows с использованием PuTTY через стандартную командную строку, способ добавить хост в кеш PuTTY - запустить
Например:
Просто ответь
y
, а потом Ctrl + C остальное.Однако проверьте отпечаток пальца. Это предупреждение есть не просто так. Отпечатки пальцев для некоторых сервисов git (пожалуйста, отредактируйте, чтобы добавить больше):
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
7e:af:8d:ec:f0:39:5e:ba:52:16:ce:19:fa:d4:b8:7d
источник
plink
, запустив$ set | grep GIT_SSH
и проверивGIT_SSH='C:\Program Files (x86)\PuTTY\plink.exe'
-P
для выбора порта, такие как:plink.exe example.com -P 2222
. Я смог клонировать с github, но не с моего личного сервера, и это меня до бесконечности смутило.Попробуйте выполнить "set | grep -i ssh" из командной строки Git Bash.
Если ваша установка похожа на мою, у вас, вероятно, есть следующие настройки:
Я сделал
и это сработало после этого ... Я думаю, putty сохраняет свои ключи где-то еще как $ HOME / .ssh или что-то в этом роде ... (У меня также была проблема с ящиком, где $ HOME был установлен в "C: \ Users \ usrnam "вместо" / C / Users / usrnam / "
в любом случае, ваш пробег может отличаться, но это решило для меня. :-)
(вероятно, достаточно просто выполнить отключенный GIT_SSH, но я был в ударе)
Примечание: если unset вам не подходит, попробуйте следующее:
источник
unset GIT_SSH
у меня тоже сработало, хотя мне приходится делать это каждый раз, когда я запускаю git bash, что довольно скучно. Есть идеи, как это автоматизировать?Я подозреваю, что в вашей
GIT_SSH
переменной среды установлено значение%ProgramFiles(x86)%\putty\plink.exe
. По какой-то причине PLink не использует.ssh/known_hosts
файл в вашем пользовательском каталоге для хранения ключей удаленных хостов.Если это действительно ваш случай, и это может быть сделано специально, если вы хотите использовать pageant, вам нужно сначала использовать PLink для подключения к хосту.
Вы должны получить подобное сообщение
После того, как вы ответили
y
на вопрос и успешно подключились к удаленному хосту, все должно быть настроено. Давай, попробуй еще раз.источник
"$GIT_SSH" -P 7999 git@stash.domain.local
Одного ssh'инга на хост недостаточно, по крайней мере, в Windows. Это добавляет ключ хоста к
ssh/known_hosts
но ошибка все еще сохраняется.Вам нужно закрыть окно git bash и открыть новое. Затем кеш реестра очищается, и после этого работает push / pull.
источник
ssh/known_hosts
относится к чему ?,% USERPROFILE% У меня проблема с Win 7, и решения нет ...Рене, твоя
HOME
переменная установлена неправильно. Либо измените его на,c:\Users\(your-username)
либо просто на%USERNAME%
.источник
Решение с Plink
Сохраните этот скрипт Python в
known_hosts.py
:Проверено на Win7x64 и Python 2.7 .
Затем запустите:
И выбираем импорт в реестр. Keycan получит открытый ключ для домена (у меня были проблемы с битбакетом), а затем скрипт python преобразует его в формат Plink.
источник
Была такая же проблема, и вы забыли подключиться к SSH на порту, где находится текущий репозиторий , а не только общий порт SSH, тогда ключ хоста другой!
источник
Просто откройте Putty и попробуйте установить соединение с удаленным сервером, на который вы хотите отправить свой код. когда появится диалог, нажмите Да (вы доверяете удаленному), тогда все будет в порядке.
источник
Рабочая обстановка:
Во-первых: удалите putty known_hosts из реестра в соответствии с Regedit.
Затем: Выполнение команды
%GIT_SSH% user@hostname
в cmd Windows решает проблему.Надеюсь, это поможет вам всем.
источник
У меня тоже была такая же проблема, когда я пытался клонировать репозиторий на моем компьютере с Windows 7. Я попробовал большинство ответов, упомянутых здесь. Ни один из них у меня не работал.
Что сработало для меня, так это запуск программы Pageant (агент аутентификации Putty). После того, как Pageant работал в фоновом режиме, я смог клонировать, отправлять и извлекать из / в репозиторий. Это сработало для меня, возможно, потому, что я установил свой открытый ключ так, что всякий раз, когда он используется в первый раз, требуется пароль, и запускается Pageant.
источник
Connection abandoned
, но что-то вродеAccess denied (private key)
Переход с PuTTY на OpenSSH устранил эту проблему для меня, без необходимости отключать GIT_SSH и т. Д.
источник
Я решил аналогичную проблему с помощью этого обходного пути .
Вам просто нужно переключиться на Embedded Git, нажать, нажать кнопку Yes, а затем снова переключиться на System Git.
Вы можете найти эту опцию в
источник
C:\Users\{UserName}\AppData\Local\SourceTree\app-2.5.5\tools\putty> .\plink.exe {YourNewHost}
Как ответил Роман Старков ,
plink
необходимо добавить хост в его кеш.Для людей, использующих Git Extensions :
(заменить фактическими путями)
например
Примечание : убедитесь, что вы используете тот же plink / klink, что и Git Extensions!
источник
Добавление хоста напрямую с помощью Bash не решило проблему, ошибка по-прежнему возникала при использовании «Получить все» в Git Extensions. При использовании «вытягивания» в одной ветке требуемый хост был автоматически добавлен Git Extensions с всплывающим экраном Bash. После этого я снова смог использовать «Получить все». Не уверен, что Git Extensions делает иначе.
источник
Я пробовал все вышеперечисленные методы, но ни один из них не смог решить ту же проблему на моем ноутбуке. Наконец, вместо того, чтобы подталкивать ветку к источнику в git bash, я пытаюсь использовать опцию push TortoiseGit для выполнения нажатия, затем всплывает окно, чтобы попросить меня добавить новый ключ хоста в кеш, после нажатия кнопки Да все идет теперь хорошо.
Надеюсь, это поможет всем вам.
источник
Поменял жесткий диск, установил винду. При попытке загрузить файлы получил это командное окно.
Я нажал «y», затем Ctrl + C. Открыл
putty.exe
, добавил старый ключ, вернулся в git и отправил файлы.источник
Просто удалите Git Extensions и установите снова, выбрав OpenSSH вместо
источник
В Windows 7 или 10 у меня сработал трюк - это удаление системной переменной GIT_SSH. Раньше он был настроен на использование Plink, а теперь был заменен на Putty. Это вызывало ошибку Plink.exe
Также была старая установка Git (32-разрядная версия) и обновление до Git (например, Git-2.20.1-64-bit.exe), поскольку на ПК была 64-разрядная ОС.
В любом случае Putty / Plink даже не использовался Git, так как при установке Git по умолчанию использовался Open SSH.
источник
Если вы получаете сообщение о нераспознанном ключе хоста при выполнении операций git push / pull с использованием ATLASSIAN SOURCETREE, у вас нет возможности ответить y / n, и операция push / pull будет прервана без кэширования ключа. Однако переход в SourceTree Tools-> Options (вкладка «Общие») и изменение клиента SSH в разделе (в разделе «Конфигурация клиента SSH») с PuTTY на OpenSSH позволит кэшировать ключ без каких-либо изменений.
источник