Отказано в разрешении (publickey) при развертывании кода heroku. фатальная ошибка: удаленный конец повесил трубку неожиданно
Я пытаюсь развернуть свой код в heroku с помощью следующей командной строки:
git push heroku master
но получаю следующую ошибку:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Я уже загрузил свой открытый SSH-ключ, но он все еще приходит с этой ошибкой.
30 ответов:
вы должны загрузить свой открытый ключ в Heroku:
heroku keys:add ~/.ssh/id_rsa.pubесли у вас нет открытого ключа, Heroku предложит вам добавить его автоматически, который работает без проблем. Просто используйте:
heroku keys:addочистить все ваши предыдущие кнопки :
heroku keys:clearдля отображения всех существующих ключей выполните:
heroku keysEDIT:
выше, кажется, не работает для меня. Я возился с
HOMEпеременная окружения и так SSH искал ключи не в том каталоге.чтобы убедиться, что SSH проверяет ключ в правильном каталоге, выполните:
ssh -vT [email protected]который будет отображать следующие (образец ) строки
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Connecting to heroku.com [50.19.85.156] port 22. debug1: Connection established. debug1: identity file /c/Wrong/Directory/.ssh/identity type -1 debug1: identity file /c/Wrong/Directory/.ssh/id_rsa type -1 debug1: identity file /c/Wrong/Directory/.ssh/id_dsa type -1 debug1: Remote protocol version 2.0, remote software version Twisted debug1: no match: Twisted debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_4.6 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: sending SSH2_MSG_KEXDH_INIT debug1: expecting SSH2_MSG_KEXDH_REPLY debug1: Host 'heroku.com' is known and matches the RSA host key. debug1: Found key in /c/Wrong/Directory/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Trying private key: /c/Wrong/Directory/.ssh/identity debug1: Trying private key: /c/Wrong/Directory/.ssh/id_rsa debug1: Trying private key: /c/Wrong/Directory/.ssh/id_dsa debug1: No more authentication methods to try.
Permission denied (publickey).из вышесказанного вы можете заметить, что ssh ищет ключи в
/c/Wrong/Directory/.sshкаталог, в котором нет открытых ключей, которые мы только что добавили в heroku (используяheroku keys:add ~/.ssh/id_rsa.pub) (обратите внимание, что в ОС windows~относится кHOMEпуть, который в win 7 / 8 являетсяC:\Users\UserName)для просмотра текущего домашнего каталога выполните следующие действия:
echo $HOMEилиecho %HOME%(Windows)установить
HOMEкаталог правильно ( правильно я имею в виду родительский каталог.sshкаталог, чтобы ssh мог искать ключи в правильном каталоге ) см. эти ссылки:
у меня была та же проблема, шаги ниже работали для меня,
->heroku login[email protected] & пароль
->cd C:\Users\yourusername\.ssh (OR for cygwin shell ->cd ~/.ssh)
->ssh-keygen -t rsa -f id_rsaесли запрашивается какая-либо парольная фраза, Не используйте пробел,заполните парольную фразу, но не забудьте ее.
после генерации ключа вам нужно добавить его, вот так
$ ssh-addи это на Heroku
->heroku keys:add "id_rsa.pub"изменить каталог на рабочее пространство, чем
->git clone [email protected]:stark-dawn-1234.git -o herokuиспользовать пароль, который вы установили выше.
на самом деле я также удаляю файлы ниже, но не уверен, что они imp,
C:\Users\yourusername.heroku\credentals и C:\Users\yourusername.СШ\если вы
эта проблема возилась со мной в течение нескольких дней.
Это может помочь.
1) Узнайте, какие ключи у вас есть в Heroku сейчас.
$ heroku keys === 1 key for [email protected] ssh-dss AAAAB8NzaC...DVj3R4Ww== [email protected]2) создать ~/.ssh / config файл:
$ sudo vim ~/.ssh/configредактировать с этой информацией
Host heroku.com Hostname heroku.com Port 22 IdentitiesOnly yes IdentityFile ~/.ssh/ssh-dss # location and name of your private key TCPKeepAlive yes User [email protected]
вот ссылка, которая объясняет, как управлять ключами ssh:http://devcenter.heroku.com/articles/keys#adding_keys_to_heroku
У меня была та же проблема, потому что у меня не было открытых ключей, поэтому я сделал:
heroku keys:clear heroku keys:addчто будет генерировать открытый ключ, а затем он хорошо работает
Если вы являетесь пользователем windows, другие решения здесь, вероятно, не решат вашу проблему.
Я использую Windows 7 64-бит + Git-1.7.7.1-preview20111027, и решение состояло в том, чтобы скопировать мои ключи из
C:\users\user\.sshдоC:\Program Files (x86)\Git\.ssh. Вот где этот клиент git ищет ключи при нажатии на heroku.Я надеюсь, что это помогает.
поделиться своим опытом :
Git (моя собственная установка) искал ключ с именем 'id_rsa'.
поэтому я попытался переименовать мои ключи 'id_rsa и id_rsa.паб' и это сработало.
кстати, я уверен, что есть другой способ сделать это, но я не смотрел еще глубже.
Если вы уже загрузили ключ то попробуйте удалить ключ и заново загрузить это с новым ключом.
heroku keys:remove //removes the existing key ssh-keygen -t rsa //generates a new key in ~/.ssh folder heroku keys:add //uploads the new key, if no arguments r passed then the key generated //in default directroy i.e., ~/.ssh/id_rsa is uploaded git push herokuэто должно работать.
Я убил себя в течение 3 дней, пытаясь каждую возможную комбинацию, чтобы попытаться заставить это работать - я, наконец, попытался сделать DSA ключ вместо этого, и это сработало.
попробуйте DSA вместо RSA, если он не работает для вас.
(Я использую Ubuntu 11.10, ruby 1.8.7, heroku 2.15.1)
на Windows 7,64 бит, выше решение (Onur Turhan) работал для меня с небольшими изменениями, как показано ниже
C:\Users\MyName > heroku loginвведите email/пароль
C:\Users\MyName >ssh-keygen -t rsa -f id_rsaэто создало два файла (id_rsa и id_rsa.паб) в моем c:\Users\MyName каталог (не внутри .ssh каталог)
heroku keys:add id_rsa.pub git clone [email protected]:some-heiku-xxxx.git -o herokuЯ думаю, добавив правильные "id_rsa.паб " файл является наиболее важным.После создания открытого ключа с помощью keygen просто убедитесь, что вы добавляете правильный ключ, посмотрев на штамп времени, когда он был создан.
у меня была эта проблема, когда TortoiseGIT был установлен на моей машине. После изменения переменной окружения
GIT_SSHС"c:\Program Files\TortoiseGit\bin\TortoisePlink.exe"до
"c:\Program Files (x86)\Git\bin\ssh.exe"и после этого урока с
ssh-keygenиkeys:add, это работает!
толчок работал на меня, а затем внезапно остановился.
Если api heroku испытывает простои, вы получите эту ошибку при попытке нажать.
проверка:
прежде чем слишком сильно волноваться.
последовательность следовать
$ heroku login $ ssh-keygen -t rsa $ heroku keys:addпри выполнении второго оператора он будет запрашивать ввод, просто нажмите введите(возврат) три раза и ключ будет добавлен.
приведенный выше ответ действительно работает, но выяснилось, что мне нужно было сделать несколько дополнительных шагов, прежде чем он работал.
- Я удалил все id_rsa * файлы и сгенерировал новый SSH с помощью этой руководство.
- затем я уничтожил приложение heroku. Убрали~/.heroku / файл учетных данных.
- команда "heroku create" (и поскольку файл учетных данных удален, он предложит вам ввести свой адрес электронной почты/пароль.
- наконец введите "heroku keys:add", и он будет загрузите значение по умолчанию~/.ssh / id_rsa.паб-файл.
- это работает! Что ж.... YMMV но я действительно надеюсь, что это может быть какая-то помощь, как я боролся весь день, пытаясь понять это! Ха-ха
для всех тех, кто пробовал все, что упоминалось выше в Windows 7, и все равно это не сработало, вот что я сделал: - открытые GitBash.exe из каталога Git C:\Program файлы (x86)\Git\ (не открывайте командную строку, это не будет работать). - добавить следующее, Как уже упоминалось выше, но вы должны удалить #
Host heroku.com Hostname heroku.com Port 22 IdentitiesOnly yes IdentityFile ~/.ssh/ssh-dss TCPKeepAlive yes User [email protected]теперь бегите git push heroku master и это должно работать.
Это звучит как ваш
~/.ssh/authorized_keysфайл настроен неправильно. Убедитесь, что:
- Он находится в правильном пути.
- разрешения файла 0600.
- разрешения
~/.sshнесколько 0700.
Я должен был сделать:
$ ssh-keygen -t rsa $ heroku keys:addтогда это сработало:
$ git push heroku master
проверить .ssh config для heroku. Пойти на.ssh папка и откройте файл конфигурации
cd ~/.ssh subl config'subl' для возвышенного текста, но вы можете использовать любой редактор, который вы хотите. Найдите строку "IdentityFile" и убедитесь, что в ней указан не открытый ключ:
IdentityFile "/Users/ircmullaney/.ssh/my_ssh"не
IdentityFile "/Users/ircmullaney/.ssh/my_ssh.pub"Это сделало это для меня. Я не уверен, почему у меня была публичная версия в файле конфигурации, но это было так, и он бросал ошибку:
Permissions 0644 for '/Users/ircmullaney/.ssh/my_ssh.pub' are too open.
у меня все еще были проблемы после попытки всех этих идей. Это была моя проблема:
мой удаленный репозиторий heroku был напуган. Я обновил его следующим образом:
git remote -vзатем удалите heroku, который является неправильным:
git remote rm herokuдобавить новый
git remote add heroku [email protected]:sitename.gitвы можете получить имя сайта на странице настроек Heroku для вашего приложения. Удачи Вам!
проблема, с которой я столкнулся, была в Windows и неизменно всякий раз, когда я запускаю "heroku keys:add", он выбрал ключи github. Итак, вот шаги, которые я последовал, чтобы решить эту проблему
- пошел на .каталог ssh в папке "Document and Settings" и удалил ключи Git hub
- выполнить команду heroku ключи: добавить
приведенная выше команда попросила меня сгенерировать новые ключи, и следующим был вывод Не удалось найти существующий открытый ключ. Вы хотели бы создать один? [Yn] Y Создание нового открытого ключа SSH. Загрузка открытого ключа SSH C:/Documents и настройки/Admin/.ssh / id_rsa.паб... сделанный ! Драгоценный камень "heroku" был устаревшим и заменен поясом инструментов Heroku, загрузите и установите его с https://toolbelt.heroku.com.
- повторите команду heroku ключи: добавить
приведенная выше команда не будет выдавать следующие выходные данные Найден существующий открытый ключ: C:/Documents и настройки/Admin/.ssh / id_rsa.паб Загрузка открытого ключа SSH C:/Documents и настройки/Admin/.ssh / id_rsa.паб... сделано
- Теперь используйте git push heroku master
для меня с помощью вышеуказанных шагов решена проблема и удалось развернуть приложение в облаке.
я испытывал ту же проблему; следующие шаги должны помочь:
- во-первых, войдите в систему: heroku login
- очистить все ключи: heroku ключи: очистить
- удалить все файлы в локальной папке (все
.pubфайлы иknow_host) в.ssh/ folder- войдите снова: heroku login-u предложит без ключа, поэтому следуйте инструкциям на экране.
Я бы просто хотел добавить, что каталог не обязательно\C:\Users[имя пользователя]\.тсс. Это каталог, в котором вы создали свой открытый ключ.
например мой домашний каталог в Windows был изменен на C:\[имя_пользователя]. Вашем домашнем каталоге в .подпапка ssh-это лучшее и наиболее вероятное место, где вы могли создать свои ключи. Вы можете проверить свой домашний каталог в Windows с помощью команды:
echo %HOMEPATH%
Если вы хотите использовать "sudo", например:
sudo git clone [email protected]......... -o herokuвы также должны создать ключ SSH для пользователя root.
sudo su cd /root/.ssh ssh-keygen -t rsa .... heroku keys:add id_rsa.pubи это сработает.
Если вы не используете root user, вместо этого создайте ssh-ключ в своем пользовательском каталоге.
cd /home/user/.sshИзвините, если мои предложения перепутались...
сначала убедитесь, что скрытые файлы видны на вашем Mac. Если не сделать:
- откройте терминал и введите
defaults write com.apple.Finder AppleShowAllFiles TRUEkillall Finderследующее:
- собирается
Users/user_name/.ssh/удалены все файлы.- открытие терминала введите
ssh-keygen -t dsa- затем
heroku keys:add ~/.ssh/id_dsa.pubN. B. Я сделал это в Mac OSX 10.7.2 Lion. Хотя процедура должна быть такой же и в других.
У меня тоже есть эта проблема. Я использую Mac OSX. Так я зафиксировал, что был войти как admin
судо Су
пароль
решение dmajkic помогите мне наконец:
для пользователей Windows это может означать: git client coudn't find your keys. Регистрация ключей c:\Users\UserName.СШ\ и! переменная окружения HOME=c:\Users\UserName\
вот что сработало для меня. Сайт heroku не добавляется к вашим известным хостам. Перейдите в окно-другое-показать вид-git-git репозитории. Оттуда клонируйте репозиторий. После клонирования удалите только что созданный репозиторий и импортируйте его из меню Файл. Сделайте это, так как при клонировании репозитория он не добавляет его в представление проводника. Теперь у вас должен быть репозиторий git и представление проводника.
Comments