Отказано в разрешении (publickey) при развертывании кода heroku. фатальная ошибка: удаленный конец повесил трубку неожиданно



Я пытаюсь развернуть свой код в heroku с помощью следующей командной строки:



git push heroku master


но получаю следующую ошибку:



Permission denied (publickey).
fatal: The remote end hung up unexpectedly


Я уже загрузил свой открытый SSH-ключ, но он все еще приходит с этой ошибкой.

676   30  

30 ответов:

вы должны загрузить свой открытый ключ в Heroku:

heroku keys:add ~/.ssh/id_rsa.pub

если у вас нет открытого ключа, Heroku предложит вам добавить его автоматически, который работает без проблем. Просто используйте:

heroku keys:add

очистить все ваши предыдущие кнопки :

heroku keys:clear

для отображения всех существующих ключей выполните:

heroku keys

EDIT:

выше, кажется, не работает для меня. Я возился с 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 мог искать ключи в правильном каталоге ) см. эти ссылки:

  1. поэтому ответьте, Как установить переменную среды Unix постоянно

  2. так что вопрос о 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.

Я надеюсь, что это помогает.

Это было решение для меня:

ssh-add ~/.ssh/my_heroku_key_rsa

поделиться своим опытом :

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 просто убедитесь, что вы добавляете правильный ключ, посмотрев на штамп времени, когда он был создан.

работает одна команда:

heroku keys:add

он сделает один, если он не существует.

у меня была эта проблема, когда TortoiseGIT был установлен на моей машине. После изменения переменной окружения GIT_SSH С

"c:\Program Files\TortoiseGit\bin\TortoisePlink.exe"

до

"c:\Program Files (x86)\Git\bin\ssh.exe"

и после этого урока с ssh-keygen и keys:add, это работает!

толчок работал на меня, а затем внезапно остановился.

Если api heroku испытывает простои, вы получите эту ошибку при попытке нажать.

проверка:

https://status.heroku.com/

прежде чем слишком сильно волноваться.

последовательность следовать

$ heroku login
$ ssh-keygen -t rsa
$ heroku keys:add

при выполнении второго оператора он будет запрашивать ввод, просто нажмите введите(возврат) три раза и ключ будет добавлен.

приведенный выше ответ действительно работает, но выяснилось, что мне нужно было сделать несколько дополнительных шагов, прежде чем он работал.

  1. Я удалил все id_rsa * файлы и сгенерировал новый SSH с помощью этой руководство.
  2. затем я уничтожил приложение heroku. Убрали~/.heroku / файл учетных данных.
  3. команда "heroku create" (и поскольку файл учетных данных удален, он предложит вам ввести свой адрес электронной почты/пароль.
  4. наконец введите "heroku keys:add", и он будет загрузите значение по умолчанию~/.ssh / id_rsa.паб-файл.
  5. это работает! Что ж.... 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. Итак, вот шаги, которые я последовал, чтобы решить эту проблему

  1. пошел на .каталог ssh в папке "Document and Settings" и удалил ключи Git hub
  2. выполнить команду heroku ключи: добавить

приведенная выше команда попросила меня сгенерировать новые ключи, и следующим был вывод Не удалось найти существующий открытый ключ. Вы хотели бы создать один? [Yn] Y Создание нового открытого ключа SSH. Загрузка открытого ключа SSH C:/Documents и настройки/Admin/.ssh / id_rsa.паб... сделанный ! Драгоценный камень "heroku" был устаревшим и заменен поясом инструментов Heroku, загрузите и установите его с https://toolbelt.heroku.com.

  1. повторите команду heroku ключи: добавить

приведенная выше команда не будет выдавать следующие выходные данные Найден существующий открытый ключ: C:/Documents и настройки/Admin/.ssh / id_rsa.паб Загрузка открытого ключа SSH C:/Documents и настройки/Admin/.ssh / id_rsa.паб... сделано

  1. Теперь используйте git push heroku master

для меня с помощью вышеуказанных шагов решена проблема и удалось развернуть приложение в облаке.

я испытывал ту же проблему; следующие шаги должны помочь:

  1. во-первых, войдите в систему: heroku login
  2. очистить все ключи: heroku ключи: очистить
  3. удалить все файлы в локальной папке (все .pub файлы и know_host) в .ssh/ folder
  4. войдите снова: 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

Извините, если мои предложения перепутались...

попробуйте восстановить разрешения в Disk Utility (Mac OS X). Помог мне

сначала убедитесь, что скрытые файлы видны на вашем Mac. Если не сделать:

  • откройте терминал и введите defaults write com.apple.Finder AppleShowAllFiles TRUE
  • killall Finder

следующее:

  • собирается Users/user_name/.ssh/ удалены все файлы.
  • открытие терминала введите ssh-keygen -t dsa
  • затем heroku keys:add ~/.ssh/id_dsa.pub

N. 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

    Ничего не найдено.